<commit_before># Contributing



## Contributing Time-Series Features

We gratefully accept contributions of new time-series features, be they domain-specific or general. Please follow the guidelines below so that your features are successfully incorporated into the `cesium` feature base.

1. Add any new numerical code to a new or existing file in `cesium/features/`.
2. In `cesium/features/graphs.py`, add feature names to a new or existing list of features (see, e.g., `GENERAL_FEATS`).
3. In `cesium/features/graphs.py`, add feature computations to a new or existing `dask` graph of computations (see, e.g., `GENERAL_GRAPH`).
	1. By default, the keys `'t'`, `'m'`, and `'e'` refer to the time series times, measurements, and errors respectively.
	2. Most features will consist of a single function call, e.g. `{'amplitude': (amplitude, 'm')}`.
	3. More complicated operations which re-use intermediate values can be constructed via standard `dask` graph syntax: see the [`dask` documentation](http://dask.pydata.org/en/latest/custom-graphs.html) for details, or the feature `freq1_freq` in `graphs.py` for an example.
<commit_msg>Update contribution guidelines<commit_after># Contributing

## Contributing Time-Series Features

We gratefulgly accept contributions of new time-series features, be they
domain-specific or general.

To add your features to the project, please follow the guidelines below:

1. Add your code to a new or existing file in `cesium/features/`.
2. In `cesium/features/graphs.py`, add your features to the
   `dask_feature_graph`.
3. Optionally, add your features into the categories & tag dictionaries.

Notes:

 - The keys `'t'`, `'m'`, and `'e'` refer to the time series times,
   measurements, and errors respectively.
 - More complicated operations which re-use intermediate values can be
   constructed via standard `dask` graph syntax: see the [`dask`
   documentation](http://dask.pydata.org/en/latest/custom-graphs.html) for
   details, or the feature `freq1_freq` in `graphs.py` as an example.

{'fraction_non_alphanumeric': 0.09739301524840138, 'fraction_numerical': 0.0054107230693556324, 'mean_word_length': 4.5422343324250685, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2076790', 'n_tokens_mistral': 583, 'n_tokens_neox': 568, 'n_words': 258}