forked from pydata/xarray
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.cfg
173 lines (152 loc) · 5.43 KB
/
setup.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
[metadata]
name = xarray
author = xarray Developers
author_email = [email protected]
license = Apache-2.0
description = N-D labeled arrays and datasets in Python
long_description_content_type=text/x-rst
long_description =
**xarray** (formerly **xray**) is an open source project and Python package
that makes working with labelled multi-dimensional arrays simple,
efficient, and fun!
xarray introduces labels in the form of dimensions, coordinates and
attributes on top of raw NumPy_-like arrays, which allows for a more
intuitive, more concise, and less error-prone developer experience.
The package includes a large and growing library of domain-agnostic functions
for advanced analytics and visualization with these data structures.
xarray was inspired by and borrows heavily from pandas_, the popular data
analysis package focused on labelled tabular data.
It is particularly tailored to working with netCDF_ files, which were the
source of xarray's data model, and integrates tightly with dask_ for parallel
computing.
.. _NumPy: https://www.numpy.org
.. _pandas: https://pandas.pydata.org
.. _dask: https://dask.org
.. _netCDF: https://www.unidata.ucar.edu/software/netcdf
Why xarray?
-----------
Multi-dimensional (a.k.a. N-dimensional, ND) arrays (sometimes called
"tensors") are an essential part of computational science.
They are encountered in a wide range of fields, including physics, astronomy,
geoscience, bioinformatics, engineering, finance, and deep learning.
In Python, NumPy_ provides the fundamental data structure and API for
working with raw ND arrays.
However, real-world datasets are usually more than just raw numbers;
they have labels which encode information about how the array values map
to locations in space, time, etc.
xarray doesn't just keep track of labels on arrays -- it uses them to provide a
powerful and concise interface. For example:
- Apply operations over dimensions by name: ``x.sum('time')``.
- Select values by label instead of integer location: ``x.loc['2014-01-01']`` or ``x.sel(time='2014-01-01')``.
- Mathematical operations (e.g., ``x - y``) vectorize across multiple dimensions (array broadcasting) based on dimension names, not shape.
- Flexible split-apply-combine operations with groupby: ``x.groupby('time.dayofyear').mean()``.
- Database like alignment based on coordinate labels that smoothly handles missing values: ``x, y = xr.align(x, y, join='outer')``.
- Keep track of arbitrary metadata in the form of a Python dictionary: ``x.attrs``.
Learn more
----------
- Documentation: `<https://docs.xarray.dev>`_
- Issue tracker: `<https://github.com/pydata/xarray/issues>`_
- Source code: `<https://github.com/pydata/xarray>`_
- SciPy2015 talk: `<https://www.youtube.com/watch?v=X0pAhJgySxk>`_
url = https://github.com/pydata/xarray
classifiers =
Development Status :: 5 - Production/Stable
License :: OSI Approved :: Apache Software License
Operating System :: OS Independent
Intended Audience :: Science/Research
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Topic :: Scientific/Engineering
[options]
packages = find:
zip_safe = False # https://mypy.readthedocs.io/en/latest/installed_packages.html
include_package_data = True
python_requires = >=3.8
install_requires =
numpy >= 1.20 # recommended to use >= 1.22 for full quantile method support
pandas >= 1.3
packaging >= 21.3
[options.extras_require]
io =
netCDF4
h5netcdf
scipy
pydap; python_version<"3.10" # see https://github.com/pydap/pydap/issues/268
zarr
fsspec
cftime
rasterio
cfgrib
pooch
## Scitools packages & dependencies (e.g: cartopy, cf-units) can be hard to install
# scitools-iris
accel =
scipy
bottleneck
numbagg
flox
parallel =
dask[complete]
viz =
matplotlib
seaborn
nc-time-axis
## Cartopy requires 3rd party libraries and only provides source distributions
## See: https://github.com/SciTools/cartopy/issues/805
# cartopy
complete =
%(io)s
%(accel)s
%(parallel)s
%(viz)s
docs =
%(complete)s
sphinx-autosummary-accessors
sphinx_rtd_theme
ipython
ipykernel
jupyter-client
nbsphinx
scanpydoc
[options.package_data]
xarray =
py.typed
tests/data/*
static/css/*
static/html/*
[tool:pytest]
python_files = test_*.py
testpaths = xarray/tests properties
# Fixed upstream in https://github.com/pydata/bottleneck/pull/199
filterwarnings =
ignore:Using a non-tuple sequence for multidimensional indexing is deprecated:FutureWarning
markers =
flaky: flaky tests
network: tests requiring a network connection
slow: slow tests
[flake8]
ignore =
# E203: whitespace before ':' - doesn't work well with black
# E402: module level import not at top of file
# E501: line too long - let black worry about that
# E731: do not assign a lambda expression, use a def
# W503: line break before binary operator
E203, E402, E501, E731, W503
exclude =
.eggs
doc
builtins =
ellipsis
[isort]
profile = black
skip_gitignore = true
float_to_top = true
default_section = THIRDPARTY
known_first_party = xarray
[aliases]
test = pytest
[pytest-watch]
nobeep = True