Es-client

Latest version: v8.13.3

Safety actively analyzes 622001 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 8

8.13.3

----------------------

**Changes**

* After all that work to ensure proper typing, I forgot to include the ``py.typed`` marker file.

8.13.2

----------------------

**Changes**

* Added typing hints, everywhere. Trying to make the module play nicer with others.
* Moved all code under ``src/es_client`` to be more package compliant.
* Moved ``__version__`` to ``__init__.py``
* Updated the ``pyproject.toml`` file to reflect these changes.
* Updated tests and documentation as needed.

**Potentially Breaking Changes**

* Migrated away from custom ``dict``-to-attribute class ``Args`` to ``DotMap``. It's the best of
both worlds as it gives full dotted notation access to a dictionary, making it appear like
class attributes. But it also still affords you the ability to treat each nested field just like
a dictionary, still. ``Builder.client_args`` and ``Builder.other_args`` should look and feel the
exact same as before, with one noted difference, and that is the ``.asdict()`` method has been
replaced by the ``.toDict()`` method. This is the one change that might mess you up. If you
are using that anywhere, please replace those calls. Also, if you were manually building these
objects before, rather than supplying a config file or dict, you can create these now as
follows:

.. code-block:: python

from es_client import Builder
from dotmap import DotMap

client_settings = {} Filled with your client settings
client_args = DotMap(client_settings)

builder = Builder()
builder.client_args = client_args
Or directly assign:
builder.client_args = DotMap(client_settings)

Updating a single key is simple:

.. code-block:: python

other_args = DotMap(other_settings)
other_args.username = 'nobody'
other_args['password'] = 'The Spanish Inquisition'

As noted, both dotted and dict formats are acceptable, as demonstrated above.
Updating with a dictionary of root level keys is simple:

.. code-block:: python

other_settings = {
'master_only': False,
'username': 'original',
'password': 'oldpasswd',
}
other_args = DotMap(other_settings)
DotMap(master_only=False, username='original', password='oldpasswd')
changes = {
'master_only': True,
'username': 'newuser',
'password': 'newpasswd',
}
other_args.update(changes)
DotMap(master_only=True, username='newuser', password='newpasswd')

If putting a nested dictionary in place, you should convert it to a DotMap first:

.. code-block:: python

d = {'a':'A', 'b':{'c':'C', 'd':{'e':'E'}}}
dm = DotMap(d)
DotMap(a='A', b=DotMap(c='C', d=DotMap(e='E')))
b = {'b':{'g':'G', 'h':{'i':'I'}}}
dm.update(b)
DotMap(a='A', b={'g': 'G', 'h': {'i': 'I'}})
^^^
Not a DotMap
dm.update(DotMap(b))
DotMap(a='A', b=DotMap(g='G', h=DotMap(i='I')))

It's always safest to update with a DotMap rather than a bare dict.
That's about it.

8.13.1

----------------------

**Bugfix**

* Reported in 60. Newer code changes do not work properly with Python versions < 3.10 due to
changes to dictionary annotations. The offending code has been patched to work around this.

**Announcement**

* Added infrastructure to test multiple versions of Python against the code base. This requires
you to run ``pip install -U hatch hatchling``, and then ``hatch run test:test``. integration
tests will fail if you do not have a local Elasticsearch running (see the
``docker_test/scripts`` directory for some help with that).

8.13.0

---------------------

**Changes**

* Version bump: ``elasticsearch8==8.13.0``

8.12.9

----------------------

**Bugfix**

* Reported in 1708. Default values (rather than None values) were overriding what was in config
files. As a result, these default values from command-line settings were overriding important
settings which were set properly in the configuration file. Hat tip to rgaduput for reporting
this.

**Changes**

* Updated cli_example.py to make the ``show_all_options`` sub-command show the proper environment
variables. This entailed resetting the context_settings. A note explaining the why is now in
the comments above that function.
* Updates to reflect the default values in the command-line were made in the tutorial and example
documentation pages.
* A new documentation page was created specific to environment variables.
* Version bump ``voluptuous==0.14.2`` from ``0.14.1``

8.12.8

----------------------

**Bugfix**

* Really batting 1000 today. Missed some version bumps.

Page 1 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.