Skip to content

Update dependencies and fix bugs in codebase#276

Merged
ehsan-fj merged 5 commits into
mainfrom
develop
May 26, 2026
Merged

Update dependencies and fix bugs in codebase#276
ehsan-fj merged 5 commits into
mainfrom
develop

Conversation

@ehsan-fj

Copy link
Copy Markdown
Member

This pull request introduces several improvements and bug fixes across the PyEPP codebase, focusing on enhanced DNSSEC handling, improved template rendering, better falsy value support, and documentation updates. The changes ensure more robust and flexible EPP command generation, especially for DNSSEC data, and improve the reliability of socket communications. Additionally, the CLI and documentation have been updated for clarity and accuracy.

DNSSEC and Command Rendering Improvements

  • Updated the domain creation template and logic to support both single and multiple DNSSEC (dns_sec) records, allowing a list of DS records to be rendered correctly in the EPP XML. This is now thoroughly tested with new unit tests for both single and multiple dns_sec scenarios. [1] [2] [3]
  • Fixed a typo in the domain transfer template (command_templates.py) where the closing tag for domain:pw was incorrect.

Falsy Value Handling

  • Modified the base command logic to preserve falsy values like 0 and False in command parameters and escaping routines, ensuring they are not inadvertently dropped. Corresponding tests were added to ensure this behavior. [1] [2] [3] [4] [5]

Socket Communication Robustness

  • Improved socket write and read methods in epp.py to use sendall (ensuring all bytes are sent), handle empty chunks gracefully, and clarify type hints for optional returns. [1] [2] [3]
  • Simplified the integer packing logic for message length fields by always using the ">I" format.

Documentation and CLI Enhancements

  • Added documentation for the new poll CLI command and improved various documentation typos and examples, including correct usage of DNSSEC lists and imports in the usage example. [1] [2] [3] [4] [5]

Other Updates

  • Bumped the package version to 0.2.0 and updated development dependencies to their latest versions. [1] [2]
  • Minor code style and type hint improvements in base_command.py. [1] [2]

These changes collectively enhance PyEPP's reliability, flexibility, and usability for both developers and end users.

dependabot Bot and others added 5 commits March 16, 2026 02:33
Bumps [coverage](https://github.com/coveragepy/coveragepy) from 7.13.1 to 7.13.4.
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](coveragepy/coveragepy@7.13.1...7.13.4)

---
updated-dependencies:
- dependency-name: coverage
  dependency-version: 7.13.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the pip group with 1 update in the / directory: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:development
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Bump pytest from 9.0.2 to 9.0.3 in the pip group across 1 directory
* ignore AI agents md files

* Issue:The `__escape_dict` and `__escape_list` methods silently drop legitimate falsy values (like `0` or `False`) because they check `elif value:` instead of `elif value is not None:`.
Fix:** Update the conditionals to explicitly check for `None`.

* fix dns_sec and domain:pw tags

* fix fail to read the full payload if data arrives in multiple chunks. use sendall instead of send to make sure all the data is sent.
The `get_format_32()` function is unnecessary as `struct.calcsize(">I")` is guaranteed to be 4 bytes in Python.

* Increase the version to 0.2.0

* bump the dependencies

* if the peer closed the connection mid-response, will return none

* Change the unit test to reflect using sendall instead of send

* Updated the dictionary comprehension that filters keyword arguments to use value is not None instead of a simple truthiness check (if value). This ensures that 0 and False are not filtered out of the parameters passed to the XML template.

* Update unit tests to refelct dns sec changes in the template

* Update docstring and types to reflect the recent changes

* Add more unit test to increase the coverage to %100

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix test_data_to_dict unit test

* Update documentions

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@ehsan-fj ehsan-fj requested a review from levius0 May 26, 2026 09:28
@ehsan-fj ehsan-fj merged commit dbf8afe into main May 26, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant