{"id":43628819,"url":"https://github.com/uasal/config_stp","last_synced_at":"2026-02-04T16:28:44.367Z","repository":{"id":293565545,"uuid":"925390109","full_name":"uasal/config_stp","owner":"uasal","description":"Configuration repository for the Space Telescope Pathfinder (STP) project.","archived":false,"fork":false,"pushed_at":"2025-07-14T23:03:32.000Z","size":2209,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2025-10-12T02:55:57.775Z","etag":null,"topics":["configuration","python-package","support-data","version-control"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uasal.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":"2025-01-31T19:36:31.000Z","updated_at":"2025-07-14T23:03:04.000Z","dependencies_parsed_at":"2025-05-16T01:34:36.525Z","dependency_job_id":null,"html_url":"https://github.com/uasal/config_stp","commit_stats":null,"previous_names":["uasal/config_stp"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/uasal/config_stp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uasal%2Fconfig_stp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uasal%2Fconfig_stp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uasal%2Fconfig_stp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uasal%2Fconfig_stp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uasal","download_url":"https://codeload.github.com/uasal/config_stp/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uasal%2Fconfig_stp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29090360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["configuration","python-package","support-data","version-control"],"created_at":"2026-02-04T16:28:43.619Z","updated_at":"2026-02-04T16:28:44.362Z","avatar_url":"https://github.com/uasal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# config_stp\n\nSpace Telescope Pathfinder repository for support data and configuration management as an installable python package.\nThe repository supersedes the stp_reference_data (private) repository which is now deprecated and soon to be archived.\n \nThe [main](https://github.com/uasal/config_stp/tree/main) branch of this repo is under STP change control. The [develop](https://github.com/uasal/config_stp/tree/develop) branch is currently the default to enable rapid development of systems engineering budgets but the default will be changed to main once baseline observatory design is frozen. Changes to main require code owner approval, changes to the develop branch require approval of two other team members.\n\nDetails on the change control process are found in the [coronograph design documentation repository](https://github.com/uasal/spacecoron_design_docs)\n\nThis repository contains reference data for a conceptual observatory and telescope roughly corresponding to the design presented in Kim et al 2023 (https://arxiv.org/abs/2309.04921).\nThe data in the repository is intended to encapsulate all parameters which represent the high-level system and are to be identical when called by the the various science tools/simulators.\nThis includes assumptions regarding the telescope optical system, such as coatings and sensors, and observatory constraints, such as slew times.\nA synthetic dataset regarding the timeseries for the wavefront error due the thermal effects is also available as described in Douglas et al 2023 (https://arxiv.org/abs/2309.04934).\n\nThe parameters for each subsystem are found in the `configs` directory.\nA description of how configurations are used in UASAL software, users can find an example notebook in the  [config_project_template](https://github.com/uasal/config_project_template) repository. \nThe example demonstrates how to load the TOML parameter files in a Python script.\nTOML files are human readable configuration files that can be read with a range of parsers https://github.com/toml-lang/toml/wiki\n\n## Dependencies\nconfig_stp is dependent on [utils_config](https://github.com/uasal/utils_config) but will be automatically installed. \n\n## Installation\nssh keys are required for the pip-based install. Verify you have ssh keys installed in GitHub, or check out this [ssh key tutorial](https://github.com/uasal/lab_documents/blob/main/ssh_key_tutorial.md)\n\n### Pip-based install\n```sh\npip install git+ssh://git@github.com/uasal/config_stp.git\n```\n\n### Installed via cloning\n```sh\ngit clone git@github.com:uasal/config_stp.git\ncd config_stp\npip install .\n```\n\n## Usage\nconfig_stp makes usage of the ConfigLoader class (as *config_loader*) from utils_config via the `load_config_values` method, which accepts 'raw' 'parsed' or 'unitless' as an argument, returning a dictionary after parsing the 'configs' directory for .toml files.\n```python\nimport config_stp\ndata = config_stp.load_config_values()\nprint(data[\"observatory\"][\"pointing\"][\"jitter_rms\"])\n```\n\nload_config_values() has a default argument of 'raw' or alternatively pass in one of the three viable arguments for how values should be presented: \n- `load_config_values('unitless')` -\u003e 0.01\n- `load_config_values('parsed')` -\u003e {'value': 0.01, 'unit': 'arcsecond'}\n- `load_config_values('raw')` -\u003e 10e-3arcsecond\n\nFor importing data and keeping code consistent across installs, config_stp will return the path to support_data with `get_data_path()`\n```python\nimport config_stp\ndata_path = config_stp.get_data_path()\nprint(data_path)\n```\n\n### Version Reporting\n\nFor the reporting configuration versions in analyses (to aid in repeatability), the method `check_imports_and_versions` is available inside [utils_config](https://github.com/uasal/utils_config) that generates a nice summary. \n\n## Astropy Unit Validation\n\nAll .toml config values should have a valid astropy unit if any units are defined. If no unit is included, the value is assumed to be unitless. A GitHub CI will automatically run a test on push to validate astropy units in the configs, reporting any issues with non-conforming astropy units. If you'd like to perform validation locally, you may run `pytest tests/test_configs.py` from the root directory of the repo. Alternatively in your python environment you may run the following snippet:\n```python\nimport config_stp\nconfig_stp.load_config_values(\"parsed\", return_loader=True).validate_astropy()\n```\nWhich will return 'True' if every unit is a valid astropy unit, or a list containing every invalid unit. If you would like to use a custom u\nnit, click [here](https://docs.astropy.org/en/stable/units/combining_and_defining.html#defining-units) for how to define that as a custom unit in Astropy. \n\n## Git large file storage (LFS)\n\nThis repository makes use of the git large file storage for files listed in the `.gitattributes` file.\nAccessing these files will require users having [Git Large File Storage (LFS)](https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage) installed on their local machine.\n\nIf you have Git LFS installed, then the large files will be pulled by default.\nThis can be disabled in your gitconfig, as described [at this link](https://stackoverflow.com/questions/42019529/how-to-clone-pull-a-git-repository-ignoring-lfs).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuasal%2Fconfig_stp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuasal%2Fconfig_stp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuasal%2Fconfig_stp/lists"}