{"id":50772465,"url":"https://github.com/mocquin/physipy","last_synced_at":"2026-06-11T20:25:43.982Z","repository":{"id":40464183,"uuid":"175999533","full_name":"mocquin/physipy","owner":"mocquin","description":"A python package that transparently handles physical quantities like 2 meters or `np.array([1, 2, 3]) Joule`","archived":false,"fork":false,"pushed_at":"2025-10-14T06:25:42.000Z","size":8036,"stargazers_count":21,"open_issues_count":16,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-12T15:53:59.238Z","etag":null,"topics":["physics","python"],"latest_commit_sha":null,"homepage":"https://physipy.readthedocs.io/en/latest","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mocquin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-16T16:58:35.000Z","updated_at":"2025-11-04T21:20:05.000Z","dependencies_parsed_at":"2024-02-24T09:23:18.056Z","dependency_job_id":"20f3282a-4354-4231-98d2-b356e111037a","html_url":"https://github.com/mocquin/physipy","commit_stats":{"total_commits":872,"total_committers":2,"mean_commits":436.0,"dds":"0.0011467889908256534","last_synced_commit":"6114e3e335cba7eff1bd42e3fa70da9e07643566"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/mocquin/physipy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocquin%2Fphysipy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocquin%2Fphysipy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocquin%2Fphysipy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocquin%2Fphysipy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mocquin","download_url":"https://codeload.github.com/mocquin/physipy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocquin%2Fphysipy/sbom","scorecard":{"id":655831,"data":{"date":"2025-08-11","repo":{"name":"github.com/mocquin/physipy","commit":"3542721c29b0a7f4c52c9b2025037a12b475492a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.1,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":3,"reason":"4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":0,"reason":"21 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: GHSA-gmj6-6f8f-6699","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-48p4-8xcf-vxj5","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2013-22 / GHSA-27x4-j476-jp5f","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T14:37:03.015Z","repository_id":40464183,"created_at":"2025-08-21T14:37:03.015Z","updated_at":"2025-08-21T14:37:03.015Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34217312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["physics","python"],"created_at":"2026-06-11T20:25:43.390Z","updated_at":"2026-06-11T20:25:43.974Z","avatar_url":"https://github.com/mocquin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# physipy\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mocquin/physipy/HEAD)\n[![PyPI version](https://badge.fury.io/py/physipy.svg)](https://pypi.org/project/physipy/)\n[![Readthedocs](https://readthedocs.org/projects/physipy/badge/?version=latest\u0026style=flat)](https://physipy.readthedocs.io/en/latest/)\n[![asv](http://img.shields.io/badge/benchmarked%20by-asv-blue.svg?style=flat)](https://mocquin.github.io/physipy/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)\n[![Downloads](https://static.pepy.tech/badge/physipy/month)](https://pepy.tech/project/physipy)\n\nThis python package allows you to manipulate physical quantities, basically considering in the association of a value (scalar, numpy.ndarray and more) and a physical unit (like meter or joule).\n\n```python\n\u003e\u003e\u003e from physipy import units, constants\n\u003e\u003e\u003e nm = units['nm']    # nanometer\n\u003e\u003e\u003e hp = constants['h'] # Planck's constant\n\u003e\u003e\u003e c  = constants['c'] # speed of light\n\u003e\u003e\u003e E_ph = hp * c / (500 * nm) # energy of a photon at wavelength 500nm\n\u003e\u003e\u003e print(E_ph)\n3.9728916483435158e-19 kg*m**2/s**2\n\u003e\u003e\u003e J = units['J'] # Joule\n\u003e\u003e\u003e E_ph.favunit = J # set the favourite unit for display/print\n\u003e\u003e\u003e print(E_ph)\n3.9728916483435158e-19 J\n```\n\nFor a quickstart, check the [quickstart notebook](https://github.com/mocquin/physipy/blob/master/quickstart.ipynb) on the [homepage](https://github.com/mocquin/physipy)\n\n## Documentation [![Readthedocs](https://readthedocs.org/projects/physipy/badge/?version=latest\u0026style=flat)](https://physipy.readthedocs.io/en/latest/)\nFull documentation of `physipy` is available here : [https://physipy.readthedocs.io/en/latest/](https://physipy.readthedocs.io/en/latest/), generated with mkdocs and hosted on readthedocs.\n\n## Try physipy online now [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/mocquin/physipy/HEAD)  \nGet a live python session with physipy [by clicking here](https://mybinder.org/v2/gh/mocquin/physipy/HEAD). After a while, you'll get an interactive notebook session, then open the `quiskstart.ipynb` notebook in the left panel.\n\n## Installation\nThe latest release of physipy is available on [pypi] at [https://pypi.org/project/physipy/](https://pypi.org/project/physipy/).\nHence the easiest way to install physipy is using pip : \n```\npip install physipy\n```\n\nLatest source code is hosted on Github at [https://github.com/mocquin/physipy/](https://github.com/mocquin/physipy/).\nYou can download and un-zip the package localy, or clone the git repository with : \n```\ngit clone https://github.com/mocquin/physipy\n```\nFor more information, see [here](https://docs.github.com/fr/repositories/creating-and-managing-repositories/cloning-a-repository).\n\n## Why choose this package  \nHere are some reasons that might encourage you to choose this package for quantity/physical/units handling in python : \n\n - Light-weight package (2 classes, few helper functions - the rest is convenience)\n - Great numpy compatibility (see below)\n - Great pandas compatibility (see below)\n - Great matplotlib compatibility (see below)\n - As fast (if not faster) than the main other units packages (see below)\n\nAlso : \n\n - lots of unit tests\n - computation performances tracked with airspeed-velocity (see below)\n - Jupyter widgets that handle units (as ipywidgets and Qt, see below)\n\n## Goals of the project\nThe project focuses on keeping these goals in the center of any new development : \n\n- Few LOC\n- Simple architecture, with only 2 classes (namely `Dimension` and `Quantity`)\n- High numpy compatibility\n- Human-readable syntax (fast syntax !)\n \n## Implementation approach\n\nIf you're only interested in using physipy, you don't need to understand this part (thou it wouldn't hurt to read it) : \n\n- a `Dimension` object represents a [physical dimension](https://en.wikipedia.org/wiki/Dimensional_analysis). For now, these dimension are based on the [SI unit](https://en.wikipedia.org/wiki/International_System_of_Units). It is basically a dictionary where the keys represent the base dimensions, and the values are the exponent these dimensions.\n- a `Quantity` object is simply the association of a value, scalar or array (or more!), and a `Dimension` object. Note that this `Quantity` class does not sub-class numpy's `ndarray` (although `Quantity` instances are compatible with numpy's ufuncs, see below). **Most of the work is done by this class**.\n- By default, a `Quantity` is displayed in term of SI untis. To express a `Quantity` in another unit, just set the \"favunit\", which stands for \"favorit unit\" of the `Quantity` : ```my_toe_length.favunit = mm```.\n- Plenty of common units (ex : Watt) and constants (ex : speed of light) are packed in. Your physical quantities (```my_toe_length```), units (```kg```), and constants (```kB```) are all `Quantity` objects.\n\n## Numpy's support\n\nOne the biggest strength of physipy is its numpy support :\n\n```python\nimport numpy as np\nfrom physipy import m, units\n\nmm = units['mm']\n\nlengths = np.linspace(-3*m, 4.5*m, 12*mm)\nprint(lengths[4])\nprint(lengths.mean())\n```\n\nNumpy is almost fully and transparently handled in physipy : basic operations, indexing, numpy functions and universal functions are handled. There are more than 150 functions implemented ! Some limitations still exist but can be can be circumvented.\nSee the [documentation for numpy support](https://physipy.readthedocs.io/en/latest/scientific-stack/numpy-support.html).\n\n## Pandas' support\n\nPandas can be interfaced with physipy through the extension API exposed by pandas. For this, just install the package [`physipandas`](https://github.com/mocquin/physipandas). You can then use `pd.Series` and `pd.DataFrame` whilst keeping the meaningfull units. Checkout the dedicated repo for [physipandas](https://github.com/mocquin/physipandas) for more information.\n\n```python\nimport pandas as pd\nimport numpy as np\nfrom physipy import m\nfrom physipandas import QuantityDtype, QuantityArray\n\n# definition is a bit verbose...\nc = pd.Series(QuantityArray(np.arange(10)*m), \n              dtype=QuantityDtype(m))\n\nprint(type(c))                 # --\u003e \u003cclass 'pandas.core.series.Series'\u003e\nprint(c.physipy.dimension)     # --\u003e : L\nprint(c.physipy.values.mean()) # --\u003e : 4.5 m\nc\n\n0   0\n1   1\n2   2\n3   3\n4   4\n5   5\n6   6\n7   7\n8   8\n9   9\ndtype: physipy[1 m]\n```\n\n## Matplotlib's units support\n\nMatplotlib allows defining a physical units interface, which can be turned-on using physipy's `setup_matplotlib`, all plot involving a physical quantity will automatically label the axis accordingly : \n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom physipy import s, m, units, setup_matplotlib\nsetup_matplotlib() # make matplotlib physipy's units aware\nmm = units[\"mm\"]   # get millimiter\nms = units[\"ms\"]   # get millisecond\n\n# physipy work\nx = np.linspace(0, 5) * s\nx.favunit = ms \ny = np.linspace(0, 30) * mm\ny.favunit = mm \n\n# standard matplotlib\nfig, ax = plt.subplots()\nax.plot(x, y)\n```\n\n[\u003cimg src=\"./docs/ressources/matplotlib_plot_with_units.png\" height=\"150px\" /\u003e](https://physipy.readthedocs.io/en/latest/scientific-stack/matplotlib-support.html)\n\nCheckout the [matplotlib page on physipy documentation](https://physipy.readthedocs.io/en/latest/scientific-stack/matplotlib-support.html).\n\n## Widgets\n\nSome ipywidgets and PyQt widgets are provided to make your physical researches and results more interactive : everything is stored in a separate package.\n\n## Alternative packages\n\nA quick performance benchmark show that physipy is just as fast (or faster) than other well-known physical packages, both when computing scalars (int or float) and numpy arrays :  \n\n\u003cimg src=\"./docs/ressources/performance_alternative_packages.png\" height=\"200px\" /\u003e\n\nFor a more in-depth comparison, checkout this repository (not maintenained but it should!) : https://github.com/mocquin/quantities-comparison : \n\n\u003cimg src=\"./docs/ressources/quantites-comparison.png\" height=\"200px\" /\u003e\n\nThere are plenty of python packages that handle physical quantities computation. Some of them are full packages while some are just plain python module. Here is a list of those I could find (approximately sorted by guessed-popularity) :\n\n - [astropy](http://www.astropy.org/astropy-tutorials/Quantities.html)\n - [sympy](https://docs.sympy.org/latest/modules/physics/units/philosophy.html)\n - [pint](https://pint.readthedocs.io/en/latest/)\n - [forallpeople](https://github.com/connorferster/forallpeople)\n - [unyt](https://github.com/yt-project/unyt)\n - [python-measurement](https://github.com/coddingtonbear/python-measurement)\n - [Unum](https://bitbucket.org/kiv/unum/)\n - [scipp](https://scipp.github.io/reference/units.html)\n - [magnitude](http://juanreyero.com/open/magnitude/)\n -  physics.py : there are actually several packages based on the same core code : [ipython-physics](https://bitbucket.org/birkenfeld/ipython-physics) (python 2 only) and [python3-physics](https://github.com/TheGrum/python3-physics) (python 3 only)\n - [ScientificPython.Scientific.Physics.PhysicalQuantities](https://github.com/ScientificPython/ScientificPython)\n - [numericalunits](https://github.com/sbyrnes321/numericalunits)\n - [dimensions.py](https://code.activestate.com/recipes/577333-numerical-type-with-units-dimensionspy/) (python 2 only)\n - [buckingham](https://github.com/mdipierro/buckingham)\n - [units](https://bitbucket.org/adonohue/units/)\n - [quantities](https://pythonhosted.org/quantities/user/tutorial.html)\n - [physical-quantities](https://github.com/hplgit/physical-quantities)\n - [brian](https://brian2.readthedocs.io/en/stable/user/units.html)\n - [quantiphy](https://github.com/KenKundert/quantiphy)\n - [parampy](https://github.com/matthewwardrop/python-parampy/blob/master/parampy/quantities.pyx)\n - [pynbody](https://github.com/pynbody/pynbody)\n - [python-units](https://pypi.org/project/python-units/)\n - [pyansys-units](https://github.com/ansys/pyansys-units/tree/main) (forked from pint?)\n - [natu](https://github.com/kdavies4/natu)\n - [misu](https://github.com/cjrh/misu)\n - [units](https://github.com/IAMconsortium/units)\n - [physunits](https://github.com/pacosalces/physunits) \n - [openscn](https://github.com/openscm/openscm-units)\n - and finally [pysics](https://bitbucket.org/Phicem/pysics) from which this package was inspired\n\nIf you know another package that is not in this list yet, feel free to contribute ! Also, if you are interested in the subject of physical quantities packages in python, check this [quantities-comparison](https://github.com/tbekolay/quantities-comparison) repo and [this talk](https://www.youtube.com/watch?v=N-edLdxiM40). Also check this [comparison table](https://socialcompare.com/en/comparison/python-units-quantities-packages) and [this talk](https://pyvideo.org/pycon-ca-2012/writing-self-documenting-scientific-code-using-ph.html).\n\nSome C/C++ alternatives :  \n - [units](https://units.readthedocs.io/en/latest/index.html)\n\n## Performance [![asv](http://img.shields.io/badge/benchmarked%20by-asv-blue.svg?style=flat)](https://mocquin.github.io/physipy/)\nPerformance of `physipy` are tracked using [`airspeedvelocity`](https://asv.readthedocs.io/en/v0.6.1/). Results are available at [https://mocquin.github.io/physipy/](https://mocquin.github.io/physipy/).\n[\u003cimg src=\"./docs/ressources/asv_screenshot.png\" height=\"200px\" /\u003e](https://mocquin.github.io/physipy/)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n\n## Acknowledgment\n\nThumbs up to phicem and his [pysics](https://bitbucket.org/Phicem/pysics) package, on which this package was highly inspired. Check it out !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmocquin%2Fphysipy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmocquin%2Fphysipy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmocquin%2Fphysipy/lists"}