Metadata-Version: 2.1
Name: fred-epplib
Version: 3.2.0
Summary: Fred-epplib is FRED EPP library.
Home-page: UNKNOWN
Author: Ondřej Fikar
Author-email: ondrej.fikar@nic.cz
License: GPL-3.0-or-later
Description: ===========
        Fred-epplib
        ===========
        
        Fred EPP library provides the means to communicate with an EPP server. It
        consists of four main modules: `client`, `commands`, `responses`, and `models`.
        
        The `Client` class in the `client` module is used to exchange the messages with
        the server. The `commands` module contains the dataclasses representing the
        commands which may be sent to the server. The `responses` module contains the
        dataclasses representing the responses received from the server. The `models`
        module contains the dataclasses which are used to compose both requests and
        responses.
        
        For more details, plese refer to the source code documentation. We suggest
        starting with the `Client` class in the `client` module.
        
        Usage
        =====
        
        In order to exchange messages with the server, a `Transport` instance has to be
        created and passed to the init of the `Client`. Then, the `Client` is connected
        to the server using a context manager or manually by calling the `connect`
        method. The commands are created as instances of the `Request` base class and
        sent via the `send` method of the `Client` instance. The response from the
        server is returned by `send` as an instance of the `Response` class. After the
        response is received, its data may be examined.
        
        See the example below
        
        .. code-block:: python
        
            from epplib.client import Client
            from epplib.commands import InfoDomain, Login, Logout
            from epplib.transport import SocketTransport
        
            hostname = 'localhost'
            cert_file = 'path/to/cert.pem'
            key_file = 'path/to/key.pem'
        
            transport = SocketTransport(hostname, cert_file=cert_file, key_file=key_file)
        
            with Client(transport) as client:
                login = Login(cl_id='my_id', password='passwd', obj_uris=['http://www.nic.cz/xml/epp/contact-1.6'])
                response_login = client.send(login)
                print(response_login.code)
        
                info = InfoDomain(name='mydomain.cz')
                response_info = client.send(info)
                print(response_info.res_data[0].ex_date)
        
                client.send(Logout())
        
        ChangeLog
        =========
        
        .. contents:: Releases
           :backlinks: none
           :local:
        
        3.2.0 (2026-06-25)
        ------------------
        
        * Add timeout to SocketTransport (#159).
        * Graceful transport termination (#164, #162).
        * Add contact-extra-data extension (#167).
        * Update project setup.
        
        3.1.1 (2025-06-26)
        ------------------
        
        * Fix recognition of domain expiration poll messages (#158).
        * Add the ``rem`` attribute to remove mailing address from a contact (#160).
        * Fix annotations.
        
        3.1.0 (2024-04-03)
        ------------------
        
        * Add auction extension for check domain (#157).
        * Update project setup.
        
        3.0.0 (2024-02-01)
        ------------------
        
        * Add support for python 3.12.
        * Make ``Addr`` fields not optional (#150).
        * Add fallback empty string to address fields (#151).
        * Add handling of errors with empty reason values (#152).
        * Remove ``auth_info`` from ``Create*`` commands (#153).
        * Add ``SendAuthinfo`` parsing (#154).
        * Update project setup.
        
        2.0.1 (2023-11-06)
        ------------------
        
        * Add a cleaner way to work with `Ident` (#149).
        * Fix socket closing in tests (#148).
        * Update package info.
        
        2.0.0 (2023-09-06)
        ------------------
        
        * Drop Python 3.7 support.
        * Split `rem` and `add` in `update` commands (#120).
        * Remove `unit` from `CreateDomain` (#139).
        * Add `RawPollMessage` class as default poll message (#134).
        * Save `xml` of last command, response (#130).
        * Improve `Client.send` type hints (#142).
        * Remove `ParseXMLMixin` NAMESPACES mapping (#143).
        * Turn `ParseXMLMixin` into separate helper functions (#144).
        * Parse reason tags (#138).
        * Remove `__future__.annotations` from `policy` (#141).
        * Prevent finishing tests before fake server closed (#137).
        * Fix typos in README (#140).
        * Fix licensing.
        * Update project setup.
        
        1.1.1 (2023-08-01)
        -------------------
        
        * Fix license.
        
        1.1.0 (2023-08-01)
        -------------------
        
        * Add `poll` commands. (#111).
        * Add command to send raw XML. (#112).
        * Add conversion from `fields` to `hidden` and `disclosed`. (#116).
        * Add disclose policy transformation method. (#119).
        * Allow passing custom ``tr_id`` (#109).
        * Fix order of disclose flags (#110).
        * Fix postal info behavior (#113).
        * Fix extraction of mailing address (#114).
        * Compare `sp` to `None`. (#115).
        * Update project setup.
        
        1.0.0 (2022-12-14)
        -------------------
        
        * Add support for Python 3.11.
        * Set default port (#108).
        * Fix annotations.
        
        0.2.0 (2022-09-27)
        -------------------
        
        * Add ``auth_info`` to info commands (#101).
        * Fix ``UpdateDomain`` command (#105).
        * Expose list commands (#104).
        * Better error handling of empty response (#106).
        * Update EPP testing schemas (#101).
        * Log raw XML and transport errors (#102).
        
        0.1.1 (2022-07-21)
        -------------------
        
        * Fix license.
        
        0.1.0 (2022-07-20)
        -------------------
        
        Initial version
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Information Technology
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
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: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.10
Provides-Extra: quality
Provides-Extra: test
Provides-Extra: types
