You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+32-9
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
In early April 2020, Delphi developed a uniform data schema for [a new Epidata endpoint focused on COVID-19](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html). Our intent was to provide signals that would track in real-time and in fine geographic granularity all facets of the COVID-19 pandemic, aiding both nowcasting and forecasting. Delphi's long history in tracking and forecasting influenza made us uniquely situated to provide access to data streams not available anywhere else, including medical claims data, electronic medical records, lab test records, massive public surveys, and internet search trends. We also process commonly-used publicly-available data sources, both for user convenience and to provide data versioning for sources that do not track revisions themselves.
6
6
7
-
Each data stream arrives in a different format using a different delivery technique, be it sftp, an access-controlled API, or an email attachment. The purpose of each pipeline in this repository is to fetch the raw source data, extract informative aggregate signals, and output those signals---which we call **COVID-19 indicators**---in a common format for upload to the [COVIDcast API](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html).
7
+
Each data stream arrives in a different format using a different delivery technique, be it sftp, an access-controlled API, or an email attachment. The purpose of each pipeline in this repository is to fetch the raw source data, extract informative aggregate signals, and output those signals---which we call **COVID-19 indicators**---in a common format for upload to the [COVIDcast API](https://cmu-delphi.github.io/delphi-epidata/api/covidcast.html).
8
8
9
9
For client access to the API, along with a variety of other utilities, see our [R](https://cmu-delphi.github.io/covidcast/covidcastR/) and [Python](https://cmu-delphi.github.io/covidcast/covidcast-py/html/) packages.
10
10
@@ -13,18 +13,19 @@ For interactive visualizations (of a subset of the available indicators), see ou
13
13
## Organization
14
14
15
15
Utilities:
16
-
*`_delphi_utils_python` - common behaviors
17
-
*`_template_python` & `_template_r` - starting points for new data sources
18
-
*`ansible` & `jenkins` - automated testing and deployment
19
-
*`sir_complainsalot` - a Slack bot to check for missing data
16
+
17
+
-`_delphi_utils_python` - common behaviors
18
+
-`_template_python` & `_template_r` - starting points for new data sources
19
+
-`ansible` & `jenkins` - automated testing and deployment
20
+
-`sir_complainsalot` - a Slack bot to check for missing data
20
21
21
22
Indicator pipelines: all remaining directories.
22
23
23
-
Each indicator pipeline includes its own documentation.
24
+
Each indicator pipeline includes its own documentation.
24
25
25
-
* Consult README.md for directions to install, lint, test, and run the pipeline for that indicator.
26
-
* Consult REVIEW.md for the checklist to use for code reviews.
27
-
* Consult DETAILS.md (if present) for implementation details, including handling of corner cases.
26
+
- Consult README.md for directions to install, lint, test, and run the pipeline for that indicator.
27
+
- Consult REVIEW.md for the checklist to use for code reviews.
28
+
- Consult DETAILS.md (if present) for implementation details, including handling of corner cases.
28
29
29
30
## Development
30
31
@@ -35,6 +36,28 @@ Each indicator pipeline includes its own documentation.
35
36
3. Add new commits to your branch in response to feedback.
36
37
4. When approved, tag an admin to merge the PR. Let them know if this change should be released immediately, at a set future date, or if it can just go along for the ride whenever the next release happens.
37
38
39
+
### Linting and Formatting
40
+
41
+
Each indicator has a `make lint` command to check for linting errors and a `make
42
+
format` command to incrementally format your code (using
43
+
[darker](https://github.com/akaihola/darker)). These are both automated with a
44
+
[Github Action](.github/workflows/python-ci.yml).
45
+
46
+
If you get the error `ERROR:darker.git:fatal: Not a valid commit name <hash>`,
47
+
then it's likely because your local main branch is not up to date; either you
48
+
need to rebase or merge. Note that `darker` reads from `pyproject.toml` for
49
+
default settings.
50
+
51
+
If the lines you change are in a file that uses 2 space indentation, `darker`
52
+
will indent the lines around your changes and not the rest, which will likely
53
+
break the code; in that case, you should probably just pass the whole file
54
+
through black. You can do that with the following command (using the same
55
+
virtual environment as above):
56
+
57
+
```sh
58
+
env/bin/black <file>
59
+
```
60
+
38
61
## Release Process
39
62
40
63
The release process consists of multiple steps which can all be done via the GitHub website:
0 commit comments