{"id":37749348,"url":"https://github.com/amacd31/phildb","last_synced_at":"2026-01-16T14:20:21.174Z","repository":{"id":15524407,"uuid":"18258872","full_name":"amacd31/phildb","owner":"amacd31","description":"Timeseries database","archived":false,"fork":false,"pushed_at":"2021-01-15T10:19:27.000Z","size":396,"stargazers_count":28,"open_issues_count":2,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-10T13:35:04.065Z","etag":null,"topics":["logging","pandas","python","temporal","time-series","timeseries","timeseries-database"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amacd31.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-30T06:23:58.000Z","updated_at":"2023-08-22T21:01:12.000Z","dependencies_parsed_at":"2022-08-04T05:00:10.572Z","dependency_job_id":null,"html_url":"https://github.com/amacd31/phildb","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/amacd31/phildb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amacd31%2Fphildb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amacd31%2Fphildb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amacd31%2Fphildb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amacd31%2Fphildb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amacd31","download_url":"https://codeload.github.com/amacd31/phildb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amacd31%2Fphildb/sbom","scorecard":{"id":188048,"data":{"date":"2025-08-11","repo":{"name":"github.com/amacd31/phildb","commit":"3b05ad6ccafc3807ac912d2103fde14f40ff2a9d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: pipCommand not pinned by hash: build_venv.sh:11","Info:   0 out of   1 pipCommand dependencies pinned"],"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":"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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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"}}]},"last_synced_at":"2025-08-16T20:08:56.679Z","repository_id":15524407,"created_at":"2025-08-16T20:08:56.679Z","updated_at":"2025-08-16T20:08:56.679Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: 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":["logging","pandas","python","temporal","time-series","timeseries","timeseries-database"],"created_at":"2026-01-16T14:20:21.059Z","updated_at":"2026-01-16T14:20:21.167Z","avatar_url":"https://github.com/amacd31.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"PhilDB project\n==============\n\n|DOI| |PYPI Version| |PYPI Status| |PYPI Python versions| |PYPI License| |Build Status| |Appveyor Status| |Code Coverage|\n\nTimeseries database project: For storing potentially changing timeseries\ndata. For example hydrological data, like streamflow data, where the\ntimeseries may be revised as quality control processes improve the\nrecorded dataset over time.\n\nPhilDB should be capable of storing data at any frequency supported by\nPandas. At this time only daily data has been extensively tested with\nsome limited sub-daily usage.\n\nFurther information about the design of PhilDB can be found in the paper:\n`PhilDB: the time series database with built-in change logging \u003chttps://peerj.com/articles/cs-52/\u003e`_.\nThat paper explores existing time series database solutions, discusses the\nmotivation for PhilDB, describes the architecture and philosophy of the PhilDB\nsoftware, and includes an evaluation between InfluxDB, PhilDB, and SciDB.\n\nDependencies\n------------\n\nRequires Python 3.7 or greater (mostly tested on Mac OSX and Linux).\nTest suite runs on Linux using Travis CI with Python 3.6, 3.7, and 3.8.\nTest suite runs on Windows using Appveyor with Python 3.7.\n\nAll the python dependencies are recorded in the python\\_requirements\nfile.\n\nInstallation\n------------\n\nPhilDB is pip installable.\n\nThe latest stable version can be installed from pypi with::\n\n    pip install phildb\n\nThe latest stable version can also be installed from conda with::\n\n    conda install -c amacd31 phildb\n\nThe latest development version can be installed from github with::\n\n    pip install git+https://github.com/amacd31/phildb.git@dev\n\nThe latest development version can be installed from conda with::\n\n    conda install -c amacd31/label/dev phildb\n\nDevelopment environment\n^^^^^^^^^^^^^^^^^^^^^^^\n\nA number of processes for a development environment with tests and documentation generation have been automated in a Makefile.\n\nThe virtualenv package can be used to create an isolated install of\nrequired Python packages.\n\nCreate a virtual environment with dependencies installed:\n\n::\n\n    make venv\n\nTest everything is working:\n\n::\n\n    make test\n\nBuild the documentation:\n\n::\n\n    make docs\n\nView the generated documentation at doc/build/html/index.html\n\nFor additional details see the INSTALL file.\n\nUsage\n=====\n\nCreate a new PhilDB\n\n::\n\n    phil-create new_tsdb\n\nOpen the newly created PhilDB\n\n::\n\n    phildb new_tsdb\n\nIf using the development environment built with make, Load it along with adding PhilDB tools to your path:\n\n::\n\n    . load_env\n\nExamples\n========\n\nSee the examples directory for code on setting up test phil databases with\ndifferent data sets. Each example comes with a README file outlining the\nsteps to acquire some data and load it. The loading scripts in each\nexample can be used as a basis for preparing a timeseries database and\nloading it with data.\n\nThe examples/hrs/ example also contains an example script (autocorr.py)\nfor processing the HRS data using phildb. The script calculates\nauto-correlation for all the streamflow timeseries in the HRS dataset.\n\nPresently there are three sets of example code, acorn-sat,\nbom\\_observations, and hrs.\n\nACORN-SAT\n---------\n\n`ACORN-SAT Example.ipynb \u003chttps://github.com/amacd31/phildb/blob/master/examples/acorn-sat/ACORN-SAT%20Example.ipynb\u003e`_ located in examples/acorn-sat demonstrates loading minimum\nand maximum daily temperature records for 112 stations around Australia.\n\nThe dataset used in this example is the Australian Climate Observations\nReference Network – Surface Air Temperature (ACORN-SAT) as found on the\nAustralian Bureau of Meteorology website\n`ACORN-SAT website \u003chttp://www.bom.gov.au/climate/change/acorn-sat/\u003e`_.\n\nBOM Observations\n----------------\n\n`Bureau of Meterology observations example.ipynb \u003chttps://github.com/amacd31/phildb/blob/master/examples/bom_observations/Bureau%20of%20Meterology%20observations%20example.ipynb\u003e`_\nlocated in examples/bom\\_observations demonstrates loading\nhalf hourly air temperature data from a 72 hour observations JSON file.\n\nThe data used in this example is a 72 hour observations JSON file from\nthe Australian Bureau of Meteorology website (e.g. JSON file as linked\non this page: `Sydney Airport\nobservations \u003chttp://www.bom.gov.au/products/IDN60901/IDN60901.94767.shtml#other_formats\u003e`_\n\nHRS\n---\n\n`HRS Example.ipynb \u003chttps://github.com/amacd31/phildb/blob/master/examples/hrs/HRS%20Example.ipynb\u003e`_\nlocated in examples/hrs demonstrates loading daily\nstreamflow data for 221 streamflow stations around Australia.\n\nThe dataset used in this example is the Hydrologic Reference Stations\n(HRS) dataset as found on the Australian Bureau of Meteorology website\n`HRS website \u003chttp://www.bom.gov.au/water/hrs/\u003e`_.\n\nThis example also includes a script to calculate the auto-correlation\nfor all the streamflow timeseries in the HRS dataset.\n\n.. |PYPI Version| image:: https://img.shields.io/pypi/v/phildb.svg\n    :target: https://pypi.python.org/pypi/PhilDB\n\n.. |PYPI Status| image:: https://img.shields.io/pypi/status/phildb.svg\n    :target: https://pypi.python.org/pypi/PhilDB\n\n.. |PYPI Python versions| image:: https://img.shields.io/pypi/pyversions/phildb.svg\n    :target: https://pypi.python.org/pypi/PhilDB\n\n.. |PYPI License| image:: https://img.shields.io/pypi/l/phildb.svg\n    :target: https://github.com/amacd31/phildb/blob/master/LICENSE\n\n.. |Build Status| image:: https://img.shields.io/travis/amacd31/phildb/master.svg\n    :target: https://travis-ci.org/amacd31/phildb\n\n.. |Appveyor Status| image:: https://img.shields.io/appveyor/ci/amacd31/phildb/master.svg\n    :target: https://ci.appveyor.com/project/amacd31/phildb\n\n.. |DOI| image:: https://zenodo.org/badge/14104/amacd31/phildb.svg\n    :target: https://zenodo.org/badge/latestdoi/14104/amacd31/phildb\n\n.. |Code Coverage| image:: https://img.shields.io/coveralls/amacd31/phildb/master.svg\n    :target: https://coveralls.io/github/amacd31/phildb?branch=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famacd31%2Fphildb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famacd31%2Fphildb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famacd31%2Fphildb/lists"}