## Synopsis
ecco_v4_py is a Python package that includes tools for loading and manipulating the ECCO v4 ocean and sea-ice state estimate (http://ecco-group.org)
Extensive documentation is provided on our readthedocs page:
http://ecco-v4-python-tutorial.readthedocs.io/index.html#
## Installation
Installation instructions can be found here!
https://ecco-v4-python-tutorial.readthedocs.io/Installing_Python_and_Python_Packages.html
## Contributors
If you would like to contribute, consider forking this repository and making pull requests via git!
## Support
contact ecco-support@mit.edu or Ian.Fenty at jpl.nasa.gov
## License
MIT License
## Note on version numbers
ecco_v4_py uses the 'semantic versioning' scheme described here:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#semantic-versioning-preferred
The essence of semantic versioning is a 3-part MAJOR.MINOR.MAINTENANCE numbering scheme:
MAJOR version when they make incompatible API changes,
MINOR version when they add functionality in a backwards-compatible manner, and
MAINTENANCE version when they make backwards-compatible bug fixes.
## Updating on pypi.org
Note: Publishing a new 'release' will trigger an 'action' and publish the new release to pypi. The version number has to be different otherwise pypi will reject it and say 'version already exists'.
The instructions below outline how to manually push code changes to pypi.
1. Make sure your ```~/.pypirc``` file has entries for [pypi] and [testpypi] with properly-scoped api tokens
```
[distutils]
index-servers =
pypi
ecco_v4_py
[pypi]
username = __token__
password = YOUR-PYPI-TOKEN-HERE
[ecco_v4_py]
repository = https://upload.pypi.org/legacy/
username = __token__
password = YOUR-PYPI-TOKEN-HERE (can be scoped for just the ecco_v4_py package)
[testpypi]
username = __token__
password = YOUR-TESTPYPI-TOKEN-HERE
```
2. Verify all code changes are up to date on github, including version number
3. Navigate to ECCOv4_py directory
4. Remove old "distribution" files by deleting the contents of the ```dist/``` directory
5. Rebuild the ```dist/``` files
```
python3 setup.py sdist bdist_wheel
```
6. Push changes to pypi test platform: test.pypi.org
```
twine upload --repository testpypi dist/*
```
7. Verify code updates are on test.pypi.org: https://test.pypi.org/project/ecco-v4-py/
8. Push changes to to pypi
```
twine upload dist/* --repository-url https://upload.pypi.org/legacy/
```
9. Verify code updates are on pypi.org: https://pypi.org/project/ecco-v4-py/
## Note on testing with `pytest`
(credit to Tim Smith)
You can run the tests locally with the pytest package, which is available through conda-forge. With that installed, you can navigate to ECCOv4-py/ecco_v4_py/test and either:
Run all the tests exactly as they are on travis (this takes a while, like 12 minutes!):
```
py.test . -v --cov=ecco_v4_py --cov-config .coveragerc --ignore=ecco_v4_py/test/test_generate_ecco_netcdf_product.py
```
Or you can run any individual module e.g. to run the few tests in ecco_utils:
```
py.test test_ecco_utils.py
```
(and you can add any of the -v or whatever flags you want).
Raw data
{
"_id": null,
"home_page": "https://github.com/ECCO-GROUP/ECCOv4-py",
"name": "ecco-v4-py",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "ecco, climate, mitgcm, estimate, circulation, climate",
"author": "Ian Fenty, Ou Wang, Tim Smith, Andrew Delman, and others",
"author_email": "ian.fenty@jpl.nasa.gov, ecco-group@mit.edu",
"download_url": "https://files.pythonhosted.org/packages/ac/fd/3121f645b8c284aed13550d34250c96df78ab7dd6c77bb471041670be01a/ecco_v4_py-1.7.8.tar.gz",
"platform": null,
"description": "## Synopsis\n\necco_v4_py is a Python package that includes tools for loading and manipulating the ECCO v4 ocean and sea-ice state estimate (http://ecco-group.org)\n\nExtensive documentation is provided on our readthedocs page: \nhttp://ecco-v4-python-tutorial.readthedocs.io/index.html#\n\n## Installation\n\nInstallation instructions can be found here!\n\nhttps://ecco-v4-python-tutorial.readthedocs.io/Installing_Python_and_Python_Packages.html\n\n\n## Contributors\n\nIf you would like to contribute, consider forking this repository and making pull requests via git!\n\n## Support \n\ncontact ecco-support@mit.edu or Ian.Fenty at jpl.nasa.gov\n\n## License\n\nMIT License\n\n\n## Note on version numbers\n\necco_v4_py uses the 'semantic versioning' scheme described here:\n\nhttps://packaging.python.org/guides/distributing-packages-using-setuptools/#semantic-versioning-preferred\n\nThe essence of semantic versioning is a 3-part MAJOR.MINOR.MAINTENANCE numbering scheme:\n\nMAJOR version when they make incompatible API changes,\n\nMINOR version when they add functionality in a backwards-compatible manner, and\n\nMAINTENANCE version when they make backwards-compatible bug fixes.\n\n\n## Updating on pypi.org\n\nNote: Publishing a new 'release' will trigger an 'action' and publish the new release to pypi. The version number has to be different otherwise pypi will reject it and say 'version already exists'.\n\nThe instructions below outline how to manually push code changes to pypi.\n\n1. Make sure your ```~/.pypirc``` file has entries for [pypi] and [testpypi] with properly-scoped api tokens\n```\n[distutils]\n index-servers =\n pypi\n ecco_v4_py \n\n[pypi]\n username = __token__\n password = YOUR-PYPI-TOKEN-HERE\n\n[ecco_v4_py]\n repository = https://upload.pypi.org/legacy/\n username = __token__\n password = YOUR-PYPI-TOKEN-HERE (can be scoped for just the ecco_v4_py package)\n\n[testpypi]\n username = __token__\n password = YOUR-TESTPYPI-TOKEN-HERE\n```\n2. Verify all code changes are up to date on github, including version number\n3. Navigate to ECCOv4_py directory\n4. Remove old \"distribution\" files by deleting the contents of the ```dist/``` directory \n5. Rebuild the ```dist/``` files\n```\npython3 setup.py sdist bdist_wheel\n```\n6. Push changes to pypi test platform: test.pypi.org \n```\ntwine upload --repository testpypi dist/*\n```\n7. Verify code updates are on test.pypi.org: https://test.pypi.org/project/ecco-v4-py/\n8. Push changes to to pypi\n```\ntwine upload dist/* --repository-url https://upload.pypi.org/legacy/\n```\n9. Verify code updates are on pypi.org: https://pypi.org/project/ecco-v4-py/\n\n\n\n## Note on testing with `pytest`\n\n(credit to Tim Smith)\n\n\nYou can run the tests locally with the pytest package, which is available through conda-forge. With that installed, you can navigate to ECCOv4-py/ecco_v4_py/test and either:\n\nRun all the tests exactly as they are on travis (this takes a while, like 12 minutes!):\n\n```\npy.test . -v --cov=ecco_v4_py --cov-config .coveragerc --ignore=ecco_v4_py/test/test_generate_ecco_netcdf_product.py\n```\n\nOr you can run any individual module e.g. to run the few tests in ecco_utils:\n\n```\npy.test test_ecco_utils.py\n\n```\n\n(and you can add any of the -v or whatever flags you want). \n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Estimating the Circulation and Climate of the Ocean (ECCO) Version 4 Python Package",
"version": "1.7.8",
"project_urls": {
"Homepage": "https://github.com/ECCO-GROUP/ECCOv4-py"
},
"split_keywords": [
"ecco",
" climate",
" mitgcm",
" estimate",
" circulation",
" climate"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dec98798004dd1922a1ba78cfb09d6a637f67c243d55c24bb55c651408ec158d",
"md5": "4cf30d9c81f03680e70387c7f14a17f3",
"sha256": "83d7814b832c08d53c60b11b6b8d10bcc734fe98fa96380d0b40ae7335e9e123"
},
"downloads": -1,
"filename": "ecco_v4_py-1.7.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4cf30d9c81f03680e70387c7f14a17f3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 167450,
"upload_time": "2025-07-25T06:25:24",
"upload_time_iso_8601": "2025-07-25T06:25:24.975040Z",
"url": "https://files.pythonhosted.org/packages/de/c9/8798004dd1922a1ba78cfb09d6a637f67c243d55c24bb55c651408ec158d/ecco_v4_py-1.7.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "acfd3121f645b8c284aed13550d34250c96df78ab7dd6c77bb471041670be01a",
"md5": "a0f82095ec4e385c2befeaa8db22d733",
"sha256": "aaa103ae900c65b14193167ca8208664f1ab4245a5cd8284e2197c8dc3eecf46"
},
"downloads": -1,
"filename": "ecco_v4_py-1.7.8.tar.gz",
"has_sig": false,
"md5_digest": "a0f82095ec4e385c2befeaa8db22d733",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 133573,
"upload_time": "2025-07-25T06:25:26",
"upload_time_iso_8601": "2025-07-25T06:25:26.430184Z",
"url": "https://files.pythonhosted.org/packages/ac/fd/3121f645b8c284aed13550d34250c96df78ab7dd6c77bb471041670be01a/ecco_v4_py-1.7.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-25 06:25:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ECCO-GROUP",
"github_project": "ECCOv4-py",
"travis_ci": true,
"coveralls": true,
"github_actions": true,
"requirements": [
{
"name": "bottleneck",
"specs": []
},
{
"name": "cartopy",
"specs": []
},
{
"name": "cmocean",
"specs": []
},
{
"name": "dask",
"specs": []
},
{
"name": "fsspec",
"specs": []
},
{
"name": "future",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "netCDF4",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "pyresample",
"specs": []
},
{
"name": "python-dateutil",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "s3fs",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "xarray",
"specs": []
},
{
"name": "xgcm",
"specs": []
},
{
"name": "xmitgcm",
"specs": []
},
{
"name": "zarr",
"specs": []
}
],
"lcname": "ecco-v4-py"
}