-------------------
New Features
~~~~~~~~~~~~
- Add a new argument to ``ArcGISRESTful`` called ``verbose`` to turn on/off all info level logs.
- Add an option to ``ArcGISRESTful.get_features`` called ``get_geometry`` to turn on/off
requesting the data with or without geometry.
- Now, ``ArcGISRESTful`` saves the object IDs of the features that user requested but are
not available in the database to ``./cache/failed_request_ids.txt``.
- Add a new parameter to ``ArcGISRESTful`` called ``disable_retry`` that If ``True`` in case
there are any failed queries, no retrying attempts is done and object IDs of the failed
requests are saved to a text file which its path can be accessed via
``ArcGISRESTful.client.failed_path``.
- Set response caching expiration time to never expire, for all base classes. A new argument
has been added to all three base classes called ``expire_after`` that can be used to set
the expiration time.
- Add a new method to all three base classes called ``clear_cache`` that clears all cached
responses for that specific client.
Breaking Changes
~~~~~~~~~~~~~~~~
- All ``oids_by*`` methods of ``ArcGISRESTful`` class now return a list of object IDs rather
than setting ``self.featureids``. This makes it possible to pass the outputs of the ``oids_by*``
functions directly to the ``get_features`` method.
Internal Changes
~~~~~~~~~~~~~~~~
- Make ``ArcGISRESTful`` less cluttered by instantiating ``ArcGISRESTfulBase`` in the
``init`` method of ``ArcGISRESTful`` rather than inheriting from its base class.
- Explicitly set a minimum value of 1 for the maximum number of feature IDs per request
in ``ArcGISRESTful``, i.e., ``self.max_nrecords``.
- Add all the missing types so ``mypy --strict`` passes.