diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index df43cd3..0eb615a 100755 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,8 +1,4 @@ repos: - - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: "v0.0.230" - hooks: - - id: ruff - repo: https://github.com/psf/black rev: "22.8.0" diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index d28c853..5088dcb 100755 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -13,7 +13,7 @@ Types of Contributions Report Bugs ~~~~~~~~~~~ -Report bugs at https://github.com/dbarrous/CDFTracker/issues +Report bugs at https://github.com/dbarrous/MetaTracker/issues If you are reporting a bug, please include: @@ -44,7 +44,7 @@ Submit Feedback ~~~~~~~~~~~~~~~ The best way to send feedback is to file an issue at -https://github.com/dbarrous/CDFTracker/issues. +https://github.com/dbarrous/MetaTracker/issues. If you are proposing a new feature: @@ -56,25 +56,25 @@ If you are proposing a new feature: Get Started! ------------ -Ready to contribute? Here's how to set up `CDFTracker` for local +Ready to contribute? Here's how to set up `MetaTracker` for local development. Please note this documentation assumes you already have `poetry` and `Git` installed and ready to go. -| 1. Fork the `CDFTracker` repo on GitHub. +| 1. Fork the `MetaTracker` repo on GitHub. | 2. Clone your fork locally: .. code-block:: bash cd <directory_in_which_repo_should_be_created> - git clone git@github.com:YOUR_NAME/CDFTracker.git + git clone git@github.com:YOUR_NAME/MetaTracker.git | 3. Now we need to install the environment. Navigate into the directory .. code-block:: bash - cd CDFTracker + cd MetaTracker If you are using ``pyenv``, select a version to use locally. (See installed versions with ``pyenv versions``) diff --git a/README.md b/README.md index 87ce5b9..e4758e9 100755 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# CDFTracker +# MetaTracker - -[](https://github.com/HERMES-SOC/CDFTracker/actions/workflows/main.yml?query=branch%3Amain) -[](https://codecov.io/gh/HERMES-SOC/CDFTracker) -[](https://img.shields.io/github/commit-activity/m/HERMES-SOC/CDFTracker) -[](https://img.shields.io/github/license/HERMES-SOC/CDFTracker) + +[](https://github.com/HERMES-SOC/MetaTracker/actions/workflows/main.yml?query=branch%3Amain) +[](https://codecov.io/gh/HERMES-SOC/MetaTracker) +[](https://img.shields.io/github/commit-activity/m/HERMES-SOC/MetaTracker) +[](https://img.shields.io/github/license/HERMES-SOC/MetaTracker) This is a python package that helps keep track of both Raw Binary and CDF Files in a Relational Database. -- **Github repository**: <https://github.com/HERMES-SOC/CDFTracker/> +- **Github repository**: <https://github.com/HERMES-SOC/MetaTracker/> ## Features - Track both Raw Binary and CDF Files @@ -28,16 +28,16 @@ To install the library and its dependencies, follow these steps: 1. Install with dependency manager of your choice: ```bash # Install with pip - pip install git+https://github.com/HERMES-SOC/CDFTracker.git + pip install git+https://github.com/HERMES-SOC/MetaTracker.git # Install with poetry - poetry add git+https://github.com/HERMES-SOC/CDFTracker.git + poetry add git+https://github.com/HERMES-SOC/MetaTracker.git ``` 2. Create both the engine and the session, with your RDBMS of choice connection string. For example, to create a session with a SQLite database, you can do the following: ```python - from cdftracker.database import create_engine, create_session + from metatracker.database import create_engine, create_session # Create a database engine and session engine = create_engine("sqlite:///test.db") @@ -46,7 +46,7 @@ To install the library and its dependencies, follow these steps: 3. If this is your first time using the library, you will need to create the database tables. To do so, run the following command: ```python - from cdftracker.database.tables import set_up_tables + from metatracker.database.tables import set_up_tables # Set up tables set_up_tables(engine, session) @@ -71,13 +71,13 @@ To install the library and its dependencies, follow these steps: parser = util.parse_science_filename ``` -5. Now you can instantiate a `CDFTracker` object with the engine and science file parser function you defined: +5. Now you can instantiate a `MetaTracker` object with the engine and science file parser function you defined: ```python - from cdftracker.tracker import tracker + from metatracker.tracker import tracker from pathlib import Path # Instantiate the tracker - tracker = tracker.CDFTracker(engine, parser) + tracker = tracker.MetaTracker(engine, parser) # Path of the science file to be tracked (for example) file = Path("./hermes_MAG_l0_2022259-030002_v01.bin") @@ -89,7 +89,7 @@ To install the library and its dependencies, follow these steps: ``` ## Database Schema -This is the database schema for the CDFTracker database. The database schema is defined in the `cdftracker.database.tables` module. +This is the database schema for the MetaTracker database. The database schema is defined in the `metatracker.database.tables` module. ## Contributing ### How to set-up Development Environment @@ -98,9 +98,9 @@ This project makes use of [Poetry](https://python-poetry.org/) to manage depende 1. Clone the repository ```bash - git clone https://github.com/HERMES-SOC/CDFTracker.git + git clone https://github.com/HERMES-SOC/MetaTracker.git - cd CDFTracker + cd MetaTracker ``` 2. Set-up your development environment diff --git a/cdftracker/config/__init__.py b/cdftracker/config/__init__.py deleted file mode 100644 index bb11570..0000000 --- a/cdftracker/config/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from . import config - - -def load_config(new_config=None) -> config.CDFTrackerConfiguration: - """ - Load configuration - - Args: - config (Dict[str, Any], optional): Configuration. Defaults to None. - - Returns: - config.CDFTrackerConfiguration: Configuration - """ - - return config.CDFTrackerConfiguration(new_config) diff --git a/cdftracker/__init__.py b/metatracker/__init__.py similarity index 93% rename from cdftracker/__init__.py rename to metatracker/__init__.py index 7cd3120..9ae54e6 100755 --- a/cdftracker/__init__.py +++ b/metatracker/__init__.py @@ -1,7 +1,7 @@ # Set up logging import logging -from cdftracker.config import load_config +from metatracker.config import load_config # Set up basic config for logging logging.basicConfig(level=logging.INFO) diff --git a/metatracker/config/__init__.py b/metatracker/config/__init__.py new file mode 100644 index 0000000..7aa9fcd --- /dev/null +++ b/metatracker/config/__init__.py @@ -0,0 +1,15 @@ +from . import config + + +def load_config(new_config=None) -> config.MetaTrackerConfiguration: + """ + Load configuration + + Args: + config (Dict[str, Any], optional): Configuration. Defaults to None. + + Returns: + config.MetaTrackerConfiguration: Configuration + """ + + return config.MetaTrackerConfiguration(new_config) diff --git a/cdftracker/config/config.py b/metatracker/config/config.py similarity index 97% rename from cdftracker/config/config.py rename to metatracker/config/config.py index 4385761..c3b215b 100644 --- a/cdftracker/config/config.py +++ b/metatracker/config/config.py @@ -90,7 +90,7 @@ } -class CDFTrackerConfiguration: +class MetaTrackerConfiguration: db_host: str mission_name: str instruments: List[Dict[str, Any]] @@ -132,7 +132,7 @@ def __init__(self, config: Dict[str, Any]) -> None: def __repr__(self) -> str: return ( - f"CDFTrackerConfiguration(db_host={self.db_host}, mission_name={self.mission_name}," + f"MetaTrackerConfiguration(db_host={self.db_host}, mission_name={self.mission_name}," f" instruments={self.instruments}, instrument_configurations={self.instrument_configurations}," f" file_levels={self.file_levels}, file_types={self.file_types})" ) diff --git a/cdftracker/database/__init__.py b/metatracker/database/__init__.py similarity index 100% rename from cdftracker/database/__init__.py rename to metatracker/database/__init__.py diff --git a/cdftracker/database/tables/__init__.py b/metatracker/database/tables/__init__.py similarity index 99% rename from cdftracker/database/tables/__init__.py rename to metatracker/database/tables/__init__.py index 289c885..45810c7 100755 --- a/cdftracker/database/tables/__init__.py +++ b/metatracker/database/tables/__init__.py @@ -2,11 +2,10 @@ Setup Tables """ - from sqlalchemy import inspect -from cdftracker import CONFIGURATION, log -from cdftracker.database import create_session +from metatracker import CONFIGURATION, log +from metatracker.database import create_session from . import file_level_table as FileLevelTable from . import file_type_table as FileTypeTable diff --git a/cdftracker/database/tables/base_table.py b/metatracker/database/tables/base_table.py similarity index 100% rename from cdftracker/database/tables/base_table.py rename to metatracker/database/tables/base_table.py diff --git a/cdftracker/database/tables/file_level_table.py b/metatracker/database/tables/file_level_table.py similarity index 96% rename from cdftracker/database/tables/file_level_table.py rename to metatracker/database/tables/file_level_table.py index 7759d7e..98672a7 100755 --- a/cdftracker/database/tables/file_level_table.py +++ b/metatracker/database/tables/file_level_table.py @@ -6,7 +6,7 @@ from sqlalchemy import Column, String -from cdftracker import CONFIGURATION +from metatracker import CONFIGURATION from . import base_table as Base diff --git a/cdftracker/database/tables/file_type_table.py b/metatracker/database/tables/file_type_table.py similarity index 96% rename from cdftracker/database/tables/file_type_table.py rename to metatracker/database/tables/file_type_table.py index c58d9c0..accd5b3 100755 --- a/cdftracker/database/tables/file_type_table.py +++ b/metatracker/database/tables/file_type_table.py @@ -6,7 +6,7 @@ from sqlalchemy import Column, String -from cdftracker import CONFIGURATION +from metatracker import CONFIGURATION from . import base_table as Base diff --git a/cdftracker/database/tables/instrument_configuration_table.py b/metatracker/database/tables/instrument_configuration_table.py similarity index 95% rename from cdftracker/database/tables/instrument_configuration_table.py rename to metatracker/database/tables/instrument_configuration_table.py index c972d9c..205b38d 100755 --- a/cdftracker/database/tables/instrument_configuration_table.py +++ b/metatracker/database/tables/instrument_configuration_table.py @@ -5,7 +5,7 @@ from sqlalchemy import Column, ForeignKey, Integer -from cdftracker import CONFIGURATION +from metatracker import CONFIGURATION from . import base_table as Base diff --git a/cdftracker/database/tables/instrument_table.py b/metatracker/database/tables/instrument_table.py similarity index 96% rename from cdftracker/database/tables/instrument_table.py rename to metatracker/database/tables/instrument_table.py index cfcb08c..b9b7282 100755 --- a/cdftracker/database/tables/instrument_table.py +++ b/metatracker/database/tables/instrument_table.py @@ -7,7 +7,7 @@ from sqlalchemy import Column, Integer, String -from cdftracker import CONFIGURATION +from metatracker import CONFIGURATION from . import base_table as Base diff --git a/cdftracker/database/tables/science_file_table.py b/metatracker/database/tables/science_file_table.py similarity index 98% rename from cdftracker/database/tables/science_file_table.py rename to metatracker/database/tables/science_file_table.py index 03b36cf..4fe55fc 100755 --- a/cdftracker/database/tables/science_file_table.py +++ b/metatracker/database/tables/science_file_table.py @@ -18,7 +18,7 @@ from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String from sqlalchemy.orm import relationship -from cdftracker import CONFIGURATION +from metatracker import CONFIGURATION from . import base_table as Base diff --git a/cdftracker/database/tables/science_product_table.py b/metatracker/database/tables/science_product_table.py similarity index 97% rename from cdftracker/database/tables/science_product_table.py rename to metatracker/database/tables/science_product_table.py index eb563b6..62514ad 100755 --- a/cdftracker/database/tables/science_product_table.py +++ b/metatracker/database/tables/science_product_table.py @@ -10,7 +10,7 @@ from sqlalchemy import Column, DateTime, ForeignKey, Integer, String from sqlalchemy.orm import relationship -from cdftracker import CONFIGURATION +from metatracker import CONFIGURATION from . import base_table as Base diff --git a/cdftracker/tracker/__init__.py b/metatracker/tracker/__init__.py similarity index 100% rename from cdftracker/tracker/__init__.py rename to metatracker/tracker/__init__.py diff --git a/cdftracker/tracker/tracker.py b/metatracker/tracker/tracker.py similarity index 95% rename from cdftracker/tracker/tracker.py rename to metatracker/tracker/tracker.py index 49d1e3f..9b08a0b 100755 --- a/cdftracker/tracker/tracker.py +++ b/metatracker/tracker/tracker.py @@ -2,17 +2,17 @@ from pathlib import Path from typing import Callable -from cdftracker import log -from cdftracker.database import check_connection, create_session -from cdftracker.database.tables.file_level_table import FileLevelTable -from cdftracker.database.tables.file_type_table import FileTypeTable -from cdftracker.database.tables.instrument_configuration_table import InstrumentConfigurationTable -from cdftracker.database.tables.instrument_table import InstrumentTable -from cdftracker.database.tables.science_file_table import ScienceFileTable -from cdftracker.database.tables.science_product_table import ScienceProductTable +from metatracker import log +from metatracker.database import check_connection, create_session +from metatracker.database.tables.file_level_table import FileLevelTable +from metatracker.database.tables.file_type_table import FileTypeTable +from metatracker.database.tables.instrument_configuration_table import InstrumentConfigurationTable +from metatracker.database.tables.instrument_table import InstrumentTable +from metatracker.database.tables.science_file_table import ScienceFileTable +from metatracker.database.tables.science_product_table import ScienceProductTable -class CDFTracker: +class MetaTracker: def __init__(self, engine, science_file_parser: Callable): self.engine = engine diff --git a/pyproject.toml b/pyproject.toml index 231325b..c8cef59 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,14 +1,14 @@ [tool.poetry] -name = "cdftracker" +name = "metatracker" version = "0.1.0" description = "This is a python package that helps keep track of both Raw Binary and CDF Files in a Relational Database." authors = ["Damian Barrous-Dume <fdamianbarrous@gmail.com>"] -repository = "https://github.com/dbarrous/CDFTracker" -documentation = "https://dbarrous.github.io/CDFTracker/" +repository = "https://github.com/dbarrous/MetaTracker" +documentation = "https://dbarrous.github.io/MetaTracker/" readme = "README.md" license = "Apache 2.0" packages = [ - {include = "cdftracker"} + {include = "metatracker"} ] [tool.poetry.dependencies] @@ -40,7 +40,7 @@ target-version = ['py37'] preview = true [tool.mypy] -files = ["cdftracker"] +files = ["metatracker"] disallow_untyped_defs = "True" disallow_any_unimported = "True" no_implicit_optional = "True" @@ -100,6 +100,6 @@ skip_empty = true [tool.coverage.run] branch = true -source = ["cdftracker"] +source = ["metatracker"] diff --git a/tests/test_cdftracker.py b/tests/test_cdftracker.py index 6ff9065..ab32451 100644 --- a/tests/test_cdftracker.py +++ b/tests/test_cdftracker.py @@ -1,6 +1,6 @@ import logging -from cdftracker import get_config, log, set_config +from metatracker import get_config, log, set_config def test_log() -> None: diff --git a/tests/test_database/test_database.py b/tests/test_database/test_database.py index fa40892..77ec15d 100644 --- a/tests/test_database/test_database.py +++ b/tests/test_database/test_database.py @@ -1,4 +1,4 @@ -from cdftracker.database import check_connection, create_engine, create_session +from metatracker.database import check_connection, create_engine, create_session # Test create database engine diff --git a/tests/test_database/test_tables/test_tables.py b/tests/test_database/test_tables/test_tables.py index 53c94e7..8f3aadd 100755 --- a/tests/test_database/test_tables/test_tables.py +++ b/tests/test_database/test_tables/test_tables.py @@ -1,9 +1,16 @@ from sqlalchemy import Column, Integer from sqlalchemy.orm import declarative_base -from cdftracker import CONFIGURATION -from cdftracker.database import create_engine, create_session -from cdftracker.database.tables import create_table, create_tables, get_columns, get_tables, remove_tables, table_exists +from metatracker import CONFIGURATION +from metatracker.database import create_engine, create_session +from metatracker.database.tables import ( + create_table, + create_tables, + get_columns, + get_tables, + remove_tables, + table_exists, +) MISSION_NAME = CONFIGURATION.mission_name diff --git a/tests/test_tracker/test_tracker.py b/tests/test_tracker/test_tracker.py index 6786f4c..f768524 100644 --- a/tests/test_tracker/test_tracker.py +++ b/tests/test_tracker/test_tracker.py @@ -2,12 +2,12 @@ from hermes_core.util import util -from cdftracker import log -from cdftracker.database import create_engine, create_session -from cdftracker.database.tables import create_tables -from cdftracker.database.tables.science_file_table import ScienceFileTable -from cdftracker.database.tables.science_product_table import ScienceProductTable -from cdftracker.tracker import tracker +from metatracker import log +from metatracker.database import create_engine, create_session +from metatracker.database.tables import create_tables +from metatracker.database.tables.science_file_table import ScienceFileTable +from metatracker.database.tables.science_product_table import ScienceProductTable +from metatracker.tracker import tracker TEST_DB_HOST = "sqlite://" TEST_RANDOM_FILENAME = "./tests/test_files/ducks.txt" @@ -29,7 +29,7 @@ def test_tracker() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) assert test_tracker is not None @@ -40,7 +40,7 @@ def test_tracker() -> None: science_file_parser = util.parse_science_filename try: - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) except Exception as e: assert isinstance(e, ConnectionError) @@ -57,7 +57,7 @@ def test_tracker_parse_extension() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine, science_file_parser=science_file_parser) extension = test_tracker.parse_extension(file_name) @@ -93,7 +93,7 @@ def test_tracker_is_valid_file_type() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) extension = test_tracker.parse_extension(test_good_file) @@ -102,7 +102,7 @@ def test_tracker_is_valid_file_type() -> None: # Create testfile with name hermes_MAG_l0_2022259-030002_v01.bin test_bad_file = Path(TEST_NON_EXISTING_SCIENCE_FILENAME) - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) extension = test_tracker.parse_extension(test_bad_file) @@ -121,7 +121,7 @@ def test_tracker_parse_filename() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) filename = test_tracker.parse_filename(file_name) @@ -154,7 +154,7 @@ def test_tracker_parse_file() -> None: science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) file = test_tracker.parse_file(session, file_name) @@ -184,7 +184,7 @@ def test_tracker_parse_science_file() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) science_file = test_tracker.parse_science_file_data(file=test_file) @@ -208,7 +208,7 @@ def test_track_is_valid_instrument() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) instrument = test_tracker.parse_science_file_data(file=test_file)["instrument"] @@ -217,7 +217,7 @@ def test_track_is_valid_instrument() -> None: # Create testfile with name hermes_MAG_l0_2022259-030002_v01.bin test_file = Path(TEST_NON_EXISTING_SCIENCE_FILENAME) - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) try: instrument = test_tracker.parse_science_file_data(file=test_file)["instrument"] @@ -239,7 +239,7 @@ def test_get_instruments() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) instruments = test_tracker.get_instruments(session=session) @@ -261,7 +261,7 @@ def test_get_instrument_configurations() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) instrument_configurations = test_tracker.get_instrument_configurations(session=session) @@ -287,7 +287,7 @@ def test_get_instrument_by_id() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) instrument = test_tracker.get_instrument_by_id(session=session, instrument_id=1) @@ -309,7 +309,7 @@ def test_map_instrument_list() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) instrument_list = test_tracker.get_instruments(session=session) @@ -331,7 +331,7 @@ def test_track() -> None: # Science File Parser science_file_parser = util.parse_science_filename - test_tracker = tracker.CDFTracker(engine=engine, science_file_parser=science_file_parser) + test_tracker = tracker.MetaTracker(engine=engine, science_file_parser=science_file_parser) test_tracker.track(file=Path(TEST_SCIENCE_FILENAME))