# -*- coding: utf-8 -*-
from setuptools import setup

packages = \
['yankee',
 'yankee.base',
 'yankee.base.fixtures',
 'yankee.base.fixtures.nested',
 'yankee.base.fixtures.nested.model',
 'yankee.base.fixtures.nested.schema',
 'yankee.codegen',
 'yankee.data',
 'yankee.html',
 'yankee.html.io',
 'yankee.html.schema',
 'yankee.io',
 'yankee.io.test',
 'yankee.json',
 'yankee.json.schema',
 'yankee.xml',
 'yankee.xml.io',
 'yankee.xml.schema']

package_data = \
{'': ['*']}

install_requires = \
['cssselect>=1.2.0,<2.0.0',
 'jsonpath-ng>=1.5.3,<2.0.0',
 'lxml>=4.8.0,<5.0.0',
 'python-dateutil>=2.8.2,<3.0.0',
 'toolz>=0.12.0,<0.13.0',
 'ujson>=5.7.0,<6.0.0']

extras_require = \
{'docs': ['furo>=2022.6,<2023.0',
          'linkify-it-py>=2.0,<3.0',
          'myst-parser>=0.17',
          'sphinx>=5.0.2,<6.0.0',
          'sphinx-autodoc-typehints>=1.19,<2.0',
          'sphinx-automodapi>=0.14',
          'sphinx-design>=0.2',
          'sphinx-notfound-page>=0.8',
          'sphinxcontrib-apidoc>=0.3,<0.4',
          'sphinxcontrib-mermaid>=0.7.1,<0.8.0',
          'nbsphinx>=0.8.9,<0.9.0',
          'IPython>=7.17.0,<8.0.0']}

setup_kwargs = {
    'name': 'yankee',
    'version': '0.1.40',
    'description': 'lightweight, simple, and fast declarative XML and JSON data extraction',
    'long_description': '[![yankee_logo](https://raw.githubusercontent.com/parkerhancock/yankee/master/docs/_static/yankee_logo.svg)](https://patent-client.readthedocs.io)\n[![Documentation](https://img.shields.io/readthedocs/yankee/stable)](https://yankee.readthedocs.io/en/stable/)\n\n\n[![PyPI](https://img.shields.io/pypi/v/yankee?color=blue)](https://pypi.org/project/yankee)\n[![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/yankee)](https://pypi.org/project/yankee)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/yankee?color=blue)](https://pypi.org/project/yankee)\n\n\n# Summary\n\nSimple declarative data extraction and loading in Python, featuring:\n\n- 🍰 **Ease of use:** Data extraction is performed in a simple, declarative types.\n- ⚙ **XML / HTML / JSON Extraction:** Extraction can be performed across a wide array of structured data\n- 🐼 **Pandas Integration:** Results are easily castable to [Pandas Dataframes and Series][pandas].\n- 😀 **Custom Output Classes:** Results can be automatically loaded into autogenerated dataclasses, or custom model types.\n- 🚀 **Performance:** XML loading is supported by the excellent and fast [lxml] library, JSON is supported by [UltraJSON][ujson] for fast parsing, and [jsonpath_ng] for flexible data extraction.  \n\n[lxml]: https://lxml.de/\n[ujson]:https://github.com/ultrajson/ultrajson\n[jsonpath_ng]: https://github.com/h2non/jsonpath-ng\n[pandas]: https://pandas.pydata.org/pandas-docs/stable/\n\n## Quick Start\n\nTo extract data from **XML**, use this import statement, and see the example below:\n```python\nfrom yankee.xml.schema import Schema, fields as f, CSSSelector\n```\n\nTo extract data from **JSON**, use this import statement, and see the example below:\n```python\nfrom yankee.xml.schema import Schema, fields as f, JSONPath\n```\n\nTo extract data from **HTML**, use this import statement:\n```python\nfrom yankee.html.schema import Schema, fields as f, CSSSelector\n```\n\nTo extract data from **Python objects** (either objects or dictionaries), use this import statement:\n```python\nfrom yankee.base.schema import Schema, fields as f\n```\n<!-- RTD-IGNORE -->\n## Documentation\n\nComplete documentation is available on [Read The Docs]\n\n[Read The Docs]: https://yankee.readthedocs.io/en/latest/\n\n<!-- END-RTD-IGNORE -->\n## Examples\n\n### Extract data from XML\n\nData extraction from XML. By default, data keys are XPath expressions, but can also be CSS selectors.\n\nTake this:\n```xml\n    <xmlObject>\n        <name>Johnny Appleseed</name>\n        <birthdate>2000-01-01</birthdate>\n        <something>\n            <many>\n                <levels>\n                    <deep>123</deep>\n                </levels>\n            </many>\n        </something>\n    </xmlObject>\n```\n\nDo this:\n```python\nfrom yankee.xml.schema import Schema, fields as f, CSSSelector\n\nclass XmlExample(Schema):\n    name = f.String("./name")\n    birthday = f.Date(CSSSelector("birthdate"))\n    deep_data = f.Int("./something/many/levels/deep")\n\nXmlExample().load(xml_doc)\n```\n\nGet this:\n```python\n{\n    "name": "Johnny Appleseed",\n    "birthday": datetime.date(2000, 1, 1),\n    "deep_data": 123\n}\n```\n\n### Extract data from JSON\n\nData extraction from JSON. By default, data keys are implied from the field names, but can also be JSONPath expressions\n\nTake this:\n```json\n{\n        "name": "Johnny Appleseed",\n        "birthdate": "2000-01-01",\n        "something": [\n            {"many": {\n                "levels": {\n                    "deep": 123\n                }\n            }}\n        ]\n    }\n```\nDo this:\n```python\nfrom yankee.json.schema import Schema, fields as f\n\nclass JsonExample(Schema):\n    name = f.String()\n    birthday = f.Date("birthdate")\n    deep_data = f.Int("something.0.many.levels.deep")\n```\nGet this:\n```python\n{\n    "name": "Johnny Appleseed",\n    "birthday": datetime.date(2000, 1, 1),\n    "deep_data": 123\n}\n```\n\n\n',
    'author': 'Parker Hancock',
    'author_email': '633163+parkerhancock@users.noreply.github.com',
    'maintainer': 'None',
    'maintainer_email': 'None',
    'url': 'https://github.com/parkerhancock/gelatin_extract',
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'extras_require': extras_require,
    'python_requires': '>=3.7,<4.0',
}


setup(**setup_kwargs)
