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

packages = \
['servicex', 'servicex.app', 'servicex.databinder', 'servicex.func_adl']

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

install_requires = \
['PyYAML>=6.0,<7.0',
 'func_adl>=3.2.6,<4.0.0',
 'google-auth>=2.17,<3.0',
 'httpx>=0.24,<0.25',
 'jupyter>=1.0.0,<2.0.0',
 'make_it_sync>=1.0.0,<2.0.0',
 'miniopy-async>=1.15,<2.0',
 'pydantic>=1.10,<2.0',
 'qastle>=0.16,<0.17',
 'requests>=2.31,<3.0',
 'tinydb>=4.7,<5.0',
 'typer[all]>=0.9.0,<0.10.0',
 'types-PyYAML>=6.0,<7.0']

extras_require = \
{'docs': ['sphinx>=7.0.1,<8.0.0', 'furo>=2023.5.20,<2024.0.0'],
 'pandas': ['pandas>=2.0.2,<3.0.0',
            'pyarrow>=12.0.0,<13.0.0',
            'fastparquet>=2023.4.0,<2024.0.0']}

entry_points = \
{'console_scripts': ['servicex = servicex.app.main:app']}

setup_kwargs = {
    'name': 'servicex',
    'version': '3.0.0a8',
    'description': '',
    'long_description': "# servicex_client\nPython SDK and CLI Client for ServiceX\n\n## Configuration\nThe client relies on a YAML file to obtain the URLs of different servicex\ndeployments, as well as tokens to authenticate with the service. The file \nshould be named `.servicex` and the format of this file is as follows:\n```yaml\napi_endpoints:\n  - endpoint: http://localhost:5000\n    name: localhost\n\n  - endpoint: https://servicex-release-testing-4.servicex.ssl-hep.org\n    name: testing4\n    token: ...\n\ndefault_endpoint: testing4\n\ncache_path: /tmp/ServiceX_Client/cache-dir\nshortened_downloaded_filename: true\n\n```\nThe `default_endpoint` will be used if otherwise not specified. The cache \ndatabase and downloaded files will be stored in the directory specified by \n`cache_path`.\n\nThe `shortened_downloaded_filename` property controls whether downloaded files\nwill have their names shortened for convenience. Setting to false preserves\nthe full filename from the dataset.\n`\n\nThe library will search for this file in the current working directory and then\nstart looking in parent directories until a file is found.\n\n## Command Line Interface\nWhen installed, the client provides a new command in your shell, `servicex`.\nThis command uses a series of subcommands to work with various functions of\nserviceX.\n\nCommon command line arguments:\n\n| Flag | Long Flag | What it does                                         |\n|------|-----------|------------------------------------------------------|\n| -u   | --url     | The url of the serviceX ingress                      |\n| -b   | --backend | Named backend from the .servicex file endpoints list |\n\nIf neither url nor backend are specified then the client will attempt to use the\n`default_endpoint` value to determine who to talk to.\n\n### codegens \nThis command will list the code generators deployed.\n\n### transforms\nThese commands interact with transforms that have been run\n\n#### list\nList transforms associated with the current user. Add the `--complete` flag to\nonly show transforms that have completed.\n\n#### files\nList the files along with their size generated by a transform. Specify the \ntransform request id with the `-t` or `--transform-id` flag\n\n#### download\nDownload the files from a transform to a local directory. Specify the transform\nrequest id with `-t` and the directory to download to with `-d`. Defaults to\ndownloading files to the current working directory.\n\n### cache\nThese commands allow you to work with the query cache maintained by the serviceX\nclient.\n\n#### list\nShow all of the cached transforms along with the run time, code generator, and \nnumber of resulting files\n\n#### delete\nDelete a specific transform from the cache. Provide the transform request ID \nwith the `-t` or `--transform-id` arg.\n\n#### clear\nClear all of the transforms from the cache. Add `-y` to force the operation \nwithout confirming with the console.\n\n## Python SDK\nEntry to the SDK starts with constructing an instance of ServiceXClient.  The \nconstructor accepts `backend` argument to specify a named backend from the\n`.servicex` file, or `url` for the direct URL to a serviceX server. With the \nURL option you can't provide a token from `.servicex` so it must either be an\nunsecured endpoint, or the token must be provided via the WLCG standard of a \nfile pointed to by `BEARER_TOKEN_FILE` environment variable.\n\nWith an instance of ServiceXClient you can \n- List the code generators deployed with the ServiceX instance\n- List the transformers that have been run\n- Get the current status of a specific transform\n\n### Create a Dataset Instance to Run Transforms\nThe ServiceX client also can create a `Dataset` instance that \nallows you to specify a query, provide a dataset identifier,\nand retrieve the results of the resulting transform request.\n\nThere are two types of datasets\n- func_adl_dataset\n- Python Function dataset\n\n### Dataset Identifiers\nBefore we get too deeply into the dataset classes, we should look\nat how to specify a dataset.\n- RucioDatasetIdentifier - for retrieving data files registered with Rucio\n- FileListDataset - A list of URIs for accessing files using xRootd\n\n### FuncADL Dataset\nThis dataset is controlled by the func_adl language. The dataset\nsupports the `Select`, `SelectMany`, `Where`, `MetaData`, and `QMetaData` \noperators from func_adl.\n\n\n### Datasets\nThis is the abstract class for requesting data from ServiceX. You have to \nspecify the dataset identifier you want data from and provide some sort of \nselection query. You can set the result format with the `set_result_format` \noperator (it's also a factory method arg for the dataset).\n\nOperators that cause the client to interact with the server: These terminal \noperators will call out to the serviceX server and process results. They\nare all implemented as asynchronous coroutines, but they also come with \nsynchronous versions to make it easy to do easy things.\n\n\n#### \n\n",
    'author': 'Ben Galewsky',
    'author_email': 'bengal1@illinois.edu',
    'maintainer': 'None',
    'maintainer_email': 'None',
    'url': 'None',
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'extras_require': extras_require,
    'entry_points': entry_points,
    'python_requires': '>=3.8,<3.12',
}


setup(**setup_kwargs)
