Metadata-Version: 2.4
Name: fred-eppic
Version: 3.1.1
Summary: Fred-eppic is EPP Interactive Client.
Author: Filip Úradník
Author-email: filip.uradnik@nic.cz
License: GPLv3+
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet
Classifier: Topic :: Internet :: Name Service (DNS)
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: ~=3.9
License-File: LICENSE
Requires-Dist: click~=8.0
Requires-Dist: fred-epplib<4,>=3.1.1
Requires-Dist: prompt_toolkit~=3.0.29
Requires-Dist: pydantic~=2.0
Requires-Dist: pydantic-settings~=2.0
Requires-Dist: pygments~=2.10
Requires-Dist: PyYAML~=6.0
Requires-Dist: typing-extensions~=4.6; python_version < "3.11"
Provides-Extra: quality
Requires-Dist: doc8; extra == "quality"
Requires-Dist: mypy<1.11; extra == "quality"
Requires-Dist: ruff; extra == "quality"
Provides-Extra: test
Requires-Dist: testfixtures; extra == "test"
Provides-Extra: types
Requires-Dist: types-PyYAML; extra == "types"
Dynamic: license-file

==========
Fred-eppic
==========

Fred-eppic is EPP Interactive Client.

Learn more about the project and our community on the `FRED's home page`__.

.. _FRED: https://fred.nic.cz
.. _Namespaces and Schemas: https://fred.nic.cz/documentation/html/EPPReference/SchemasNamespaces/index.html
.. _Python Logging Dict Schema Wiki: https://docs.python.org/3/library/logging.config.html#logging-config-dictschema

__ FRED_

Usage
===========

For info about usage, read the `manpage <man/main.rst>`_.

Configuration
=============

For further info about configuration, read the `configuration manpage <man/config.rst>`_.

Public API specification
========================

Public API of this application marked as compatible for the purpose of semantic versioning is a command-line interface.
Specifically:

* Command names, arguments and behaviour, regardless of the input format.
* Structure of command outputs, with respect to the format used, in all formats except for the text output.
* Structure of the configuration file.

Changes excluded from public API compatibility:

* Any features marked as experimental.
* Command behaviour changes caused by changes on the EPP server, especially changes in EPP schemas.
* Interactive prompt features, such as history, autocompletion and command validation.

ChangeLog
=========

.. contents:: Releases
   :backlinks: none
   :local:

Unreleased
----------

3.1.1 (2026-07-02)
------------------

* Support ``X | Y`` argument syntax (#221).

3.1.0 (2025-07-02)
------------------

* Add support for Python 3.13, remove 3.8.
* Redesign session management.

  * Add ``epp-login``, ``save-session`` and ``use-session`` commands (#169, #181, #188, #196).
  * Add ``--login`` argument to the ``new-session`` command (#180).
  * Add ``list-sessions`` command (#162).
  * Add color, selected session to prompt (#194).
  * Make ``EppHandler.session`` persistent (#191).
  * Deprecate the ``login`` command (#181).
  * Deprecate numeric session ids (#170, #178).

* Improve the ``help`` command.

  * Use POSIX-like help style for commands (#182).
  * Add help for the ``help`` command (#192).
  * Fixup typo in help.

* Support mailing address removal (#198).
* Use username as default alias (#196).
* Add a configuration switch for online validation (#164).
* Add transaction IDs to output (#184).
* Show message type in ``poll-req`` responses (#168).
* Reconnect automatically if the session gets closed (#167).
* Support default argument values (#155).
* Add support for user warnings (#174).
* Fix config file location in manpages (#199).
* Unify appearance of boolean values (#200).
* Support click 8.2.
* Refactor code (#163, #171, #173, #176, #177, #180, #195).
* Improve tests (#179, #187).
* Update project setup (#179, #197).

3.0.1 (2024-04-05)
------------------

* Add support for ``fred-epplib`` 3.1.0 (#165).
* Move printing of raw xml to the epp handler. (#157).
* Migrate from `shlex.shlex` to `shlex.split` (#160).
* Update issue templates.

3.0.0 (2024-02-01)
------------------

* Add support for python 3.12.
* Update ``fred-epplib`` to 3.X.X (#158).
* Add VI mode (#124, #132).
* Add help content (#47, #152).
* Get results hook print all results (#125).
* Add ``,``, ``%`` and ``:`` to the shlex wordchars (#121, #147).
* Fix Command-line args POSIX (#135).
* Output ``MsgQ`` if it isn't empty (#128).
* Add ``values`` and ``values_ext`` tags to output (#129).
* Add an option to print raw XML output in eppic (#123).
* Fully disable prompt toolkit when not tty (#131).
* Allow users to specify custom cltrid (#137).
* Print extensions on output (#145).
* Clean up interactive settings (#144).
* Exit on error (#150, #151).
* Put in proper description of output formats (#115).
* Rename ``switch-session`` to ``login`` in readme (#118).
* Add eppic manpages (#57).
* Support Pydantic 2.* (#139).
* Return only the value from ``parse_value`` (#117).
* Force all-optional dataclasses return ``None`` (#122).
* Consider ``Optional[T]`` fields as not required (#154).
* Add custom ``Argument`` parsing exceptions (#120).
* Add an output format definition (#136).
* Simplify ``Application`` API (#140).
* Move ``get_input_handler`` to ``Settings`` (#130).
* Rename ``ExecutableCommand`` to ``Request`` (#143).
* Add ``Command`` subclasses which handle execution-specific code (#141).
* Add debug logs (#149).
* Improve internal documentation (#108, #134).
* Fix tests (#113).
* Update package setup.

2.0.0 (2023-08-10)
------------------

* Enable configless run (#42).
* Restrict positional arguments. (#96).
* Fix and improve output (#68, #70, #82, #92).
* Use dashes instead of underscores in argument names (#79, #111).
* Automatically apply the disclose policy (#91).
* Add `hello` command (#88).
* Add ``poll`` commands (#93, #114).
* Add ``raw-request`` command (#40, #102).
* Add ``change-settings`` command (#41).
* Add ``new-session`` command (#84).
* Remove ``set-session`` command ().
* Change ``login`` command ().
* Settings validation no longer throws traceback (#55).
* Add an option for command confirmation (#28).
* Add an option to print results automatically on list commands.
* Fix the option to disable auto completion (#101).
* Disable interactive mode when running without tty (#103).
* Add command hooks (#90, #97).
* Move session to epp handler. (#49).
* Fix and refactor argument processing (#71, #72, #73, #74, #77, #78, #80, #83, #85, #86, #89, #98, #104, #105, #110).
* Close connection on `send_command` error. (#69).
* Unite the models into `models`. (#99).
* Fix and update tests (#68, #106, #107, #109).
* Update project setup (#112, #116).

1.0.1 (2022-12-21)
------------------

* Fix nested dataclass attributes (#66).
* Output in unicode encoding (#67).

1.0.0 (2022-12-15)
------------------

* Add support for Python 3.11.
* Suggest required args first (#59).
* Tweak prompt validation (#62).
* Update session defaults (#54).
* Fix get-results output (#60).
* Fix representing enums in output (#56).
* Fix subarguments' required flag (#58).

* Add ``ArgumentField`` object (#63, #58).
* Public API specification (#64).
* Update project setup.
* Fix typing and tests (#52).

0.1.2 (2022-10-05)
------------------

* Restrict supported pydantic versions.

0.1.1 (2022-09-29)
------------------

A number of changes and fixes for the initial version.

0.1.0 (2022-09-19)
------------------

Initial version.
