Skip to main content

A utility package for retrieving ATLAS open data URLs and metadata.

Project description

ATLAS Open Magic 🪄📊

Tests Dynamic TOML Badge codecov

atlasopenmagic is a Python package made to simplify working with ATLAS Open Data by providing utilities to manage metadata and URLs for streaming the data.

Key Features:

  • Simple functions to set the active data release (e.g., 2024r-pp).
  • Efficient local caching of metadata to minimize API calls.
  • Helper functions to retrieve specific dataset information, including file URLs for different "skims" (filtered versions of datasets).
  • Support for multiple URL protocols (root, https, eos).
  • Configuration via environment variables for easy integration into different workflows.

Installation

You can install this package using pip.

pip install atlasopenmagic

Alternatively, clone the repository and install locally:

git clone https://github.com/atlas-outreach-data-tools/atlasopenmagic.git
cd atlasopenmagic
pip install .

Documentation

You can find the full documentation for ATLAS Open Magic in the ATLAS Open Data website.

Quick start

First, import the package:

import atlasopenmagic as atom

See the available releases and set to one of the options given by available_releases()

atom.available_releases()
set_release('2024r-pp')

Check in the Monte Carlo Metadata which datasets do you want to retrieve and use the 'Dataset ID'. For example, to get the metadata from Pythia8EvtGen_A14MSTW2008LO_Zprime_NoInt_ee_SSM3000:

all_metadata = atom.get_metadata('301204')

If we only want a specific variable:

xsec = atom.get_metadata('301204', 'cross_section_pb')

To get the URLs to stream the files for that MC dataset:

all_mc = atom.get_urls('301204')

To get some data instead, check the available options:

atom.available_data()

And get the URLs for the one that's to be used:

all_mc = atom.get_urls('data')

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature-name).
  5. Create a Pull Request.

Please ensure all tests pass before submitting a pull request (just run pytest from the main directory of the package).

Developers can also pip install including additional tools required for testing:

pip install atlasopenmagic[dev]

or with a local copy of the repository:

pip install '.[dev]'

Pre-commit Hooks

We use pre-commit hooks, find below how to use them.

Installation

  1. Install the [dev] dependencies if you haven't already, as shown above.

  2. Install the git hook scripts:

pre-commit install
  1. (Optional) Run against all files:
pre-commit run --all-files

What the hooks do

  • black: Formats Python code consistently
  • isort: Sorts imports alphabetically and separates them into sections
  • ruff: Fast Python linter that catches common errors and style issues
  • codespell: Checks for common misspellings in code and comments
  • trailing-whitespace: Removes trailing whitespace
  • end-of-file-fixer: Ensures files end with a newline
  • pydocstyle: Checks docstring style (Google convention)

The hooks will run automatically on git commit. If any hook fails, the commit will be blocked until the issues are fixed.

License

This project is licensed under the Apache 2.0 License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atlasopenmagic-1.7.0.tar.gz (31.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atlasopenmagic-1.7.0-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file atlasopenmagic-1.7.0.tar.gz.

File metadata

  • Download URL: atlasopenmagic-1.7.0.tar.gz
  • Upload date:
  • Size: 31.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for atlasopenmagic-1.7.0.tar.gz
Algorithm Hash digest
SHA256 20be606f169269b437c4f4195ea4b676d61287e282a917bc7ff354ddcb184b39
MD5 3e4bf7b3b2d47659081c2a22ae589077
BLAKE2b-256 d635162ebb82f28361c08dfc0c6bf85803edcc6278c5b3289c5ae1f50437fc53

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasopenmagic-1.7.0.tar.gz:

Publisher: build-and-publish.yml on atlas-outreach-data-tools/atlasopenmagic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atlasopenmagic-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: atlasopenmagic-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for atlasopenmagic-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4261c21daa73cba652345450e16977150eec7b90d2f645f5f27948b714b6dded
MD5 1c2e69f4df1de8e7082ca52c6fc9b85a
BLAKE2b-256 ed2c08c60e0875a7f92f4c5d53511259670d1dcfc9282cfaba2011a9d78548bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasopenmagic-1.7.0-py3-none-any.whl:

Publisher: build-and-publish.yml on atlas-outreach-data-tools/atlasopenmagic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page