<p align="center">
<img width="350" src="https://github.com/PlanetHunters/watson/blob/main/images/watson.png?raw=true">
</p>
<b>WATSON</b> (<b>V</b>isual <b>V</b>etting and <b>A</b>nalysis of <b>T</b>ransits from <b>S</b>pace Observatio<b>N</b>s) is a lightweight software package
that enables a comfortable visual vetting of a transiting signal candidate from Kepler, K2 and TESS missions.
Any transiting candidate signal found in a space-based mission could have been potentially generated by
different astrophysical sources or even by instrumental artifacts induced into a target's light curve.
To rule-out these scenarios, the Science Processing Operation Center (SPOC) of the NASA implemented
the Data Validation (DV) Reports, which are showing different metrics to qualify
or discard an analyzed candidate. These scenarios are mainly
* Transit shape model fit
* Odd-even transits checks,
* Weak secondary events
* Centroids shifts
* Optical ghost effects
* Transit source offsets
* Rolling band contamination histograms
WATSON is also implementing similar but more simplified checks for all of those scenarios
(SPOC fits transits models and we just compute the SNR of the possible candidate signal) except the
rolling band contamination. In addition, we included a new check comparing the transit SNRs in the different
available cadences and also all the single-transit plots computed with the official pipeline aperture and a
smaller one. With all of these data, we compute metrics that might alert the scientist about problematic
signals not complying with any of the thresholds.
For more information check the docs: [https://dearwatson.readthedocs.io](https://dearwatson.readthedocs.io)
## Code example
Let's say that you found a new candidate in the TOI-175 with a period of 1.04 days (this is a known false positive
from the TESS mission). You could run WATSON easily with the next code chunk:
```
period = 1.0491800670761966
epoch = 1354.7155898963902
duration_mins = 54
depth_ppts = 0.158
sectors = 'all'
rp_rstar = 0.01205
a_rstar = 9
ra = 124.531756290083
dec = -68.3129998725044
# We need to mask the previous candidates to ensure they don't add noise to the analysis
known_transits_mask = [{'P': 3.6906682312153136, 'T0': 1356.20298505518, 'D': 56},
{'P': 2.2531273092040185, 'T0': 1354.9020729263193, 'D': 45},
{'P': 7.450690528437917, 'T0': 1355.2917484673462, 'D': 69}]
your_execution_dir = os.getcwd()
object_dir = your_execution_dir + '/results'
if not os.path.exists(object_dir):
os.mkdir(object_dir)
Watson(object_dir).vetting("TIC 307210830", period, epoch, duration_mins, depth_ppts, sectors, rp_rstar,
a_rstar=a_rstar, cadence=120,
cpus=os.cpu_count() // 2,
transits_list=None, ra=ra,
dec=dec, clean=True, transits_mask=known_transits_mask)
```
This same example is done in one of our tutorials. Go and check it out!: [TOI-175 tutorial](https://dearwatson.readthedocs.io/en/latest/TOI-175/TOI-175-vetting.html)
Raw data
{
"_id": null,
"home_page": "https://github.com/PlanetHunters/watson",
"name": "dearwatson",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "M. D\u00e9vora-Pajares",
"author_email": "mdevorapajares@protonmail.com",
"download_url": "https://files.pythonhosted.org/packages/ae/8b/24c58d04912006a835ec7dc3580448aa19e638bc20d38bdfa68c093964e1/dearwatson-0.12.6.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img width=\"350\" src=\"https://github.com/PlanetHunters/watson/blob/main/images/watson.png?raw=true\">\n</p>\n\n<b>WATSON</b> (<b>V</b>isual <b>V</b>etting and <b>A</b>nalysis of <b>T</b>ransits from <b>S</b>pace Observatio<b>N</b>s) is a lightweight software package\nthat enables a comfortable visual vetting of a transiting signal candidate from Kepler, K2 and TESS missions.\n\nAny transiting candidate signal found in a space-based mission could have been potentially generated by \ndifferent astrophysical sources or even by instrumental artifacts induced into a target's light curve. \nTo rule-out these scenarios, the Science Processing Operation Center (SPOC) of the NASA implemented \nthe Data Validation (DV) Reports, which are showing different metrics to qualify \nor discard an analyzed candidate. These scenarios are mainly \n\n* Transit shape model fit\n* Odd-even transits checks, \n* Weak secondary events\n* Centroids shifts\n* Optical ghost effects\n* Transit source offsets\n* Rolling band contamination histograms\n\nWATSON is also implementing similar but more simplified checks for all of those scenarios \n(SPOC fits transits models and we just compute the SNR of the possible candidate signal) except the \nrolling band contamination. In addition, we included a new check comparing the transit SNRs in the different \navailable cadences and also all the single-transit plots computed with the official pipeline aperture and a \nsmaller one. With all of these data, we compute metrics that might alert the scientist about problematic \nsignals not complying with any of the thresholds.\n\nFor more information check the docs: [https://dearwatson.readthedocs.io](https://dearwatson.readthedocs.io)\n\n## Code example\nLet's say that you found a new candidate in the TOI-175 with a period of 1.04 days (this is a known false positive\nfrom the TESS mission). You could run WATSON easily with the next code chunk:\n```\nperiod = 1.0491800670761966\nepoch = 1354.7155898963902\nduration_mins = 54\ndepth_ppts = 0.158\nsectors = 'all'\nrp_rstar = 0.01205\na_rstar = 9 \nra = 124.531756290083\ndec = -68.3129998725044\n# We need to mask the previous candidates to ensure they don't add noise to the analysis\nknown_transits_mask = [{'P': 3.6906682312153136, 'T0': 1356.20298505518, 'D': 56}, \n {'P': 2.2531273092040185, 'T0': 1354.9020729263193, 'D': 45}, \n {'P': 7.450690528437917, 'T0': 1355.2917484673462, 'D': 69}]\nyour_execution_dir = os.getcwd() \nobject_dir = your_execution_dir + '/results'\nif not os.path.exists(object_dir):\n os.mkdir(object_dir)\nWatson(object_dir).vetting(\"TIC 307210830\", period, epoch, duration_mins, depth_ppts, sectors, rp_rstar,\n a_rstar=a_rstar, cadence=120,\n cpus=os.cpu_count() // 2,\n transits_list=None, ra=ra,\n dec=dec, clean=True, transits_mask=known_transits_mask)\n```\n\nThis same example is done in one of our tutorials. Go and check it out!: [TOI-175 tutorial](https://dearwatson.readthedocs.io/en/latest/TOI-175/TOI-175-vetting.html)\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Visual Vetting and Analysis of Transits from Space ObservatioNs",
"version": "0.12.6",
"project_urls": {
"Homepage": "https://github.com/PlanetHunters/watson"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fec807bea08e0c66633be7cac0bca4c583804ce474d8ff7612dcebde02661095",
"md5": "1de02bed35d15326044afec2e7bf739a",
"sha256": "a6f963e1ce5fbdd0c276f010eafb9b004a93fbbc9fd0f7c18f3cda2da011ab29"
},
"downloads": -1,
"filename": "dearwatson-0.12.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1de02bed35d15326044afec2e7bf739a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 1304301,
"upload_time": "2024-11-01T16:52:15",
"upload_time_iso_8601": "2024-11-01T16:52:15.747319Z",
"url": "https://files.pythonhosted.org/packages/fe/c8/07bea08e0c66633be7cac0bca4c583804ce474d8ff7612dcebde02661095/dearwatson-0.12.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ae8b24c58d04912006a835ec7dc3580448aa19e638bc20d38bdfa68c093964e1",
"md5": "1001208ace9d7934d0c8d7a8f562b877",
"sha256": "9e39242671b54ae940de3be2e1ffa18c9ecfa02ad313c9679956f7fd8affdc60"
},
"downloads": -1,
"filename": "dearwatson-0.12.6.tar.gz",
"has_sig": false,
"md5_digest": "1001208ace9d7934d0c8d7a8f562b877",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 1299951,
"upload_time": "2024-11-01T16:52:17",
"upload_time_iso_8601": "2024-11-01T16:52:17.511795Z",
"url": "https://files.pythonhosted.org/packages/ae/8b/24c58d04912006a835ec7dc3580448aa19e638bc20d38bdfa68c093964e1/dearwatson-0.12.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-01 16:52:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PlanetHunters",
"github_project": "watson",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "absl-py",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "annotated-types",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "anyio",
"specs": [
[
"==",
"4.6.2.post1"
]
]
},
{
"name": "arviz",
"specs": [
[
"==",
"0.20.0"
]
]
},
{
"name": "astropy",
"specs": [
[
"==",
"5.3.4"
]
]
},
{
"name": "astroquery",
"specs": [
[
"==",
"0.4.7"
]
]
},
{
"name": "astunparse",
"specs": [
[
"==",
"1.6.3"
]
]
},
{
"name": "autograd",
"specs": [
[
"==",
"1.7.0"
]
]
},
{
"name": "backports.tarfile",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "batman-package",
"specs": [
[
"==",
"2.4.9"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
"==",
"4.12.3"
]
]
},
{
"name": "blosc2",
"specs": [
[
"==",
"2.7.1"
]
]
},
{
"name": "bokeh",
"specs": [
[
"==",
"2.4.2"
]
]
},
{
"name": "cachetools",
"specs": [
[
"==",
"5.5.0"
]
]
},
{
"name": "celerite",
"specs": [
[
"==",
"0.4.3"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.8.30"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.17.1"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "configparser",
"specs": [
[
"==",
"5.0.1"
]
]
},
{
"name": "contourpy",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "corner",
"specs": [
[
"==",
"2.2.2"
]
]
},
{
"name": "cryptography",
"specs": [
[
"==",
"43.0.3"
]
]
},
{
"name": "cycler",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "Cython",
"specs": [
[
"==",
"3.0.6"
]
]
},
{
"name": "dearwatson",
"specs": [
[
"==",
"0.12.6"
]
]
},
{
"name": "Deprecated",
"specs": [
[
"==",
"1.2.14"
]
]
},
{
"name": "distro",
"specs": [
[
"==",
"1.9.0"
]
]
},
{
"name": "dm-tree",
"specs": [
[
"==",
"0.1.8"
]
]
},
{
"name": "ellc",
"specs": [
[
"==",
"1.8.8"
]
]
},
{
"name": "emcee",
"specs": [
[
"==",
"3.1.6"
]
]
},
{
"name": "everest-pipeline",
"specs": [
[
"==",
"2.0.12"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "exoml",
"specs": [
[
"==",
"0.1.29"
]
]
},
{
"name": "extension-helpers",
"specs": [
[
"==",
"0.1"
]
]
},
{
"name": "fbpca",
"specs": [
[
"==",
"1.0"
]
]
},
{
"name": "filelock",
"specs": [
[
"==",
"3.16.1"
]
]
},
{
"name": "flatbuffers",
"specs": [
[
"==",
"24.3.25"
]
]
},
{
"name": "foldedleastsquares",
"specs": [
[
"==",
"1.1.6"
]
]
},
{
"name": "fonttools",
"specs": [
[
"==",
"4.54.1"
]
]
},
{
"name": "fsspec",
"specs": [
[
"==",
"2024.10.0"
]
]
},
{
"name": "gast",
"specs": [
[
"==",
"0.4.0"
]
]
},
{
"name": "george",
"specs": [
[
"==",
"0.4.3"
]
]
},
{
"name": "google-auth",
"specs": [
[
"==",
"2.35.0"
]
]
},
{
"name": "google-auth-oauthlib",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "google-pasta",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "graphviz",
"specs": [
[
"==",
"0.20.1"
]
]
},
{
"name": "grpcio",
"specs": [
[
"==",
"1.67.1"
]
]
},
{
"name": "h11",
"specs": [
[
"==",
"0.14.0"
]
]
},
{
"name": "h5netcdf",
"specs": [
[
"==",
"1.4.0"
]
]
},
{
"name": "h5py",
"specs": [
[
"==",
"3.12.1"
]
]
},
{
"name": "html5lib",
"specs": [
[
"==",
"1.1"
]
]
},
{
"name": "httpcore",
"specs": [
[
"==",
"1.0.6"
]
]
},
{
"name": "httpx",
"specs": [
[
"==",
"0.27.2"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "imageio",
"specs": [
[
"==",
"2.9.0"
]
]
},
{
"name": "importlib_metadata",
"specs": [
[
"==",
"8.5.0"
]
]
},
{
"name": "jaraco.classes",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "jaraco.context",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "jaraco.functools",
"specs": [
[
"==",
"4.1.0"
]
]
},
{
"name": "jax",
"specs": [
[
"==",
"0.4.30"
]
]
},
{
"name": "jaxlib",
"specs": [
[
"==",
"0.4.30"
]
]
},
{
"name": "jeepney",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "Jinja2",
"specs": [
[
"==",
"3.1.4"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.4.2"
]
]
},
{
"name": "k2plr",
"specs": [
[
"==",
"0.2.9"
]
]
},
{
"name": "kagglehub",
"specs": [
[
"==",
"0.3.3"
]
]
},
{
"name": "keras",
"specs": [
[
"==",
"2.12.0"
]
]
},
{
"name": "keras-core",
"specs": [
[
"==",
"0.1.7"
]
]
},
{
"name": "keras-nlp",
"specs": [
[
"==",
"0.8.1"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"25.5.0"
]
]
},
{
"name": "kiwisolver",
"specs": [
[
"==",
"1.4.7"
]
]
},
{
"name": "lcbuilder",
"specs": [
[
"==",
"0.21.1"
]
]
},
{
"name": "ldtk",
"specs": [
[
"==",
"1.8.4"
]
]
},
{
"name": "libclang",
"specs": [
[
"==",
"18.1.1"
]
]
},
{
"name": "lightkurve",
"specs": [
[
"==",
"2.4.2"
]
]
},
{
"name": "llvmlite",
"specs": [
[
"==",
"0.41.1"
]
]
},
{
"name": "lxml",
"specs": [
[
"==",
"5.3.0"
]
]
},
{
"name": "Markdown",
"specs": [
[
"==",
"3.7"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "MarkupSafe",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.8.2"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "MechanicalSoup",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "MeepMeep",
"specs": [
[
"==",
"0.6.3"
]
]
},
{
"name": "memoization",
"specs": [
[
"==",
"0.4.0"
]
]
},
{
"name": "ml_dtypes",
"specs": [
[
"==",
"0.5.0"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"10.5.0"
]
]
},
{
"name": "mpmath",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "msgpack",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "multipledispatch",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "namex",
"specs": [
[
"==",
"0.0.8"
]
]
},
{
"name": "ndindex",
"specs": [
[
"==",
"1.9.2"
]
]
},
{
"name": "networkx",
"specs": [
[
"==",
"3.4.2"
]
]
},
{
"name": "numba",
"specs": [
[
"==",
"0.58.1"
]
]
},
{
"name": "numexpr",
"specs": [
[
"==",
"2.10.1"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.23.5"
]
]
},
{
"name": "nvidia-cublas-cu12",
"specs": [
[
"==",
"12.1.3.1"
]
]
},
{
"name": "nvidia-cuda-cupti-cu12",
"specs": [
[
"==",
"12.1.105"
]
]
},
{
"name": "nvidia-cuda-nvrtc-cu12",
"specs": [
[
"==",
"12.1.105"
]
]
},
{
"name": "nvidia-cuda-runtime-cu12",
"specs": [
[
"==",
"12.1.105"
]
]
},
{
"name": "nvidia-cudnn-cu12",
"specs": [
[
"==",
"8.9.2.26"
]
]
},
{
"name": "nvidia-cufft-cu12",
"specs": [
[
"==",
"11.0.2.54"
]
]
},
{
"name": "nvidia-curand-cu12",
"specs": [
[
"==",
"10.3.2.106"
]
]
},
{
"name": "nvidia-cusolver-cu12",
"specs": [
[
"==",
"11.4.5.107"
]
]
},
{
"name": "nvidia-cusparse-cu12",
"specs": [
[
"==",
"12.1.0.106"
]
]
},
{
"name": "nvidia-nccl-cu12",
"specs": [
[
"==",
"2.18.1"
]
]
},
{
"name": "nvidia-nvjitlink-cu12",
"specs": [
[
"==",
"12.6.77"
]
]
},
{
"name": "nvidia-nvtx-cu12",
"specs": [
[
"==",
"12.1.105"
]
]
},
{
"name": "oauthlib",
"specs": [
[
"==",
"3.2.2"
]
]
},
{
"name": "oktopus",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "openai",
"specs": [
[
"==",
"1.30.1"
]
]
},
{
"name": "opt_einsum",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.1"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"1.5.3"
]
]
},
{
"name": "patsy",
"specs": [
[
"==",
"0.5.6"
]
]
},
{
"name": "photutils",
"specs": [
[
"==",
"1.10.0"
]
]
},
{
"name": "Pillow",
"specs": [
[
"==",
"9.5.0"
]
]
},
{
"name": "pip",
"specs": [
[
"==",
"24.3.1"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.3.6"
]
]
},
{
"name": "protobuf",
"specs": [
[
"==",
"4.25.5"
]
]
},
{
"name": "py-cpuinfo",
"specs": [
[
"==",
"9.0.0"
]
]
},
{
"name": "pyasn1",
"specs": [
[
"==",
"0.6.1"
]
]
},
{
"name": "pyasn1_modules",
"specs": [
[
"==",
"0.4.1"
]
]
},
{
"name": "pybind11",
"specs": [
[
"==",
"2.11.1"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.22"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.9.2"
]
]
},
{
"name": "pydantic_core",
"specs": [
[
"==",
"2.23.4"
]
]
},
{
"name": "pydot",
"specs": [
[
"==",
"1.4.2"
]
]
},
{
"name": "pyerfa",
"specs": [
[
"==",
"2.0.1.4"
]
]
},
{
"name": "Pygments",
"specs": [
[
"==",
"2.18.0"
]
]
},
{
"name": "pyopencl",
"specs": [
[
"==",
"2024.3"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"2.4.7"
]
]
},
{
"name": "PyPDF2",
"specs": [
[
"==",
"3.0.1"
]
]
},
{
"name": "pyrr",
"specs": [
[
"==",
"0.10.3"
]
]
},
{
"name": "pysyzygy",
"specs": [
[
"==",
"0.0.2"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.9.0.post0"
]
]
},
{
"name": "pytools",
"specs": [
[
"==",
"2024.1.14"
]
]
},
{
"name": "PyTransit",
"specs": [
[
"==",
"2.6.11"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2024.2"
]
]
},
{
"name": "pyvo",
"specs": [
[
"==",
"1.5.3"
]
]
},
{
"name": "PyYAML",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "regex",
"specs": [
[
"==",
"2024.9.11"
]
]
},
{
"name": "reportlab",
"specs": [
[
"==",
"4.0.7"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "requests-oauthlib",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"13.9.4"
]
]
},
{
"name": "rsa",
"specs": [
[
"==",
"4.9"
]
]
},
{
"name": "ruamel.yaml",
"specs": [
[
"==",
"0.17.32"
]
]
},
{
"name": "ruamel.yaml.clib",
"specs": [
[
"==",
"0.2.12"
]
]
},
{
"name": "scikit-learn",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.11.4"
]
]
},
{
"name": "seaborn",
"specs": [
[
"==",
"0.13.2"
]
]
},
{
"name": "SecretStorage",
"specs": [
[
"==",
"3.3.3"
]
]
},
{
"name": "semantic-version",
"specs": [
[
"==",
"2.10.0"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"75.1.0"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "soupsieve",
"specs": [
[
"==",
"2.6"
]
]
},
{
"name": "statsmodels",
"specs": [
[
"==",
"0.13.5"
]
]
},
{
"name": "sympy",
"specs": [
[
"==",
"1.13.3"
]
]
},
{
"name": "tables",
"specs": [
[
"==",
"3.10.1"
]
]
},
{
"name": "tenacity",
"specs": [
[
"==",
"9.0.0"
]
]
},
{
"name": "tensorboard",
"specs": [
[
"==",
"2.12.3"
]
]
},
{
"name": "tensorboard-data-server",
"specs": [
[
"==",
"0.7.2"
]
]
},
{
"name": "tensorflow",
"specs": [
[
"==",
"2.12.0"
]
]
},
{
"name": "tensorflow-addons",
"specs": [
[
"==",
"0.19.0"
]
]
},
{
"name": "tensorflow-estimator",
"specs": [
[
"==",
"2.12.0"
]
]
},
{
"name": "tensorflow-hub",
"specs": [
[
"==",
"0.16.1"
]
]
},
{
"name": "tensorflow-io-gcs-filesystem",
"specs": [
[
"==",
"0.37.1"
]
]
},
{
"name": "tensorflow-text",
"specs": [
[
"==",
"2.12.1"
]
]
},
{
"name": "termcolor",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "tess-point",
"specs": [
[
"==",
"0.6.1"
]
]
},
{
"name": "tf-keras",
"specs": [
[
"==",
"2.15.0"
]
]
},
{
"name": "threadpoolctl",
"specs": [
[
"==",
"3.5.0"
]
]
},
{
"name": "torch",
"specs": [
[
"==",
"2.1.2"
]
]
},
{
"name": "tornado",
"specs": [
[
"==",
"6.4.1"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.6"
]
]
},
{
"name": "traitlets",
"specs": [
[
"==",
"5.14.3"
]
]
},
{
"name": "triceratops",
"specs": [
[
"==",
"1.0.18"
]
]
},
{
"name": "triton",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "typeguard",
"specs": [
[
"==",
"4.1.5"
]
]
},
{
"name": "typing_extensions",
"specs": [
[
"==",
"4.7.1"
]
]
},
{
"name": "uncertainties",
"specs": [
[
"==",
"3.2.2"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.2.3"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "Werkzeug",
"specs": [
[
"==",
"3.1.1"
]
]
},
{
"name": "wheel",
"specs": [
[
"==",
"0.44.0"
]
]
},
{
"name": "wotan",
"specs": [
[
"==",
"1.9"
]
]
},
{
"name": "wrapt",
"specs": [
[
"==",
"1.14.1"
]
]
},
{
"name": "xarray",
"specs": [
[
"==",
"2024.3.0"
]
]
},
{
"name": "xarray-einstats",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.20.2"
]
]
}
],
"tox": true,
"lcname": "dearwatson"
}