<commit_before>Development Guidelines
======================

Dask is a community maintained project.  We welcome contributions in the form
of bug reports, documentation, code, design proposals, and more.
This page provides resources on how best to contribute.

Where to ask for help
---------------------

Dask conversation happens in the following places:

1.  `StackOverflow #dask tag`_: for usage questions
2.  `Github Issue Tracker`_: for discussions around new features or established bugs
3.  `Gitter chat`_: for real-time discussion

For usage questions and bug reports we strongly prefer the use of StackOverflow
and Github issues over gitter chat.  Github and StackOverflow are more easily
searchable by future users and so is more efficient for everyone's time.
Gitter chat is generally reserved for community discussion.

.. _`StackOverflow #dask tag`: http://stackoverflow.com/questions/tagged/dask
.. _`Github Issue Tracker`: https://github.com/dask/dask/issues/
.. _`Gitter chat`: https://gitter.im/dask/dask


Separate Code Repositories
--------------------------

Dask maintains code and documentation in a few git repositories hosted on the
Github ``dask`` organization, http://github.com/dask.  This includes the primary
repository and several other repositories for different components.  A
non-exhaustive list follows:

*  http://github.com/dask/dask: The main code repository holding parallel
   algorithms, the single-machine scheduler, and most documentation
*  http://github.com/dask/distributed: The distributed memory scheduler
*  http://github.com/dask/dask-ml: Machine learning algorithms
*  http://github.com/dask/s3fs: S3 Filesystem interface
*  http://github.com/dask/gcsfs: GCS Filesystem interface
*  http://github.com/dask/hdfs3: Hadoop Filesystem interface
*  ...

Git and Github can be challenging at first.  Fortunately good materials exist
on the internet.  Rather than repeat these materials here, we refer you to
Pandas' documentation and links on this subject at
http://pandas.pydata.org/pandas-docs/stable/contributing.html


Issues
------

The community discusses and tracks known bugs and potential features in the
`Github Issue Tracker`_.  If you have a new idea or have identified a bug, then
you should raise it there to start public discussion.

If you are looking for an introductory issue to get started with development,
then check out the `introductory label`_, which contains issues that are good
for starting developers.  Generally, familiarity with Python, NumPy, Pandas, and
some parallel computing are assumed.

.. _`introductory label`: https://github.com/dask/dask/issues?q=is%3Aissue+is%3Aopen+label%3Aintroductory


Development Environment
-----------------------

Download code
~~~~~~~~~~~~~

Clone the main Dask git repository (or whatever repository you're working on)::

   git clone <EMAIL>:dask/dask.git


Install
~~~~~~~

You may want to install larger dependencies like NumPy and Pandas using a
binary package manager like conda_.  You can skip this step if you already
have these libraries, don't care to use them, or have sufficient build
environment on your computer to compile them when installing with ``pip``::

   conda install -y numpy pandas scipy bokeh

.. _conda: http://conda.pydata.org/docs/

Install Dask and dependencies::

   cd dask
   pip install -e .[complete]

For development, Dask uses the following additional dependencies::

   pip install pytest moto mock


Run Tests
~~~~~~~~~

Dask uses py.test_ for testing.  You can run tests from the main dask directory
as follows::

   py.test dask --verbose

.. _py.test: http://pytest.org/latest/


Contributing to Code
--------------------

Dask maintains development standards that are similar to most PyData projects.  These standards include
language support, testing, documentation, and style.

Python Versions
~~~~~~~~~~~~~~~<commit_msg>Add doctest-modules to py.test documentation (#4427)<commit_after>Development Guidelines
======================

Dask is a community maintained project.  We welcome contributions in the form
of bug reports, documentation, code, design proposals, and more.
This page provides resources on how best to contribute.

Where to ask for help
---------------------

Dask conversation happens in the following places:

1.  `StackOverflow #dask tag`_: for usage questions
2.  `Github Issue Tracker`_: for discussions around new features or established bugs
3.  `Gitter chat`_: for real-time discussion

For usage questions and bug reports we strongly prefer the use of StackOverflow
and Github issues over gitter chat.  Github and StackOverflow are more easily
searchable by future users and so is more efficient for everyone's time.
Gitter chat is generally reserved for community discussion.

.. _`StackOverflow #dask tag`: http://stackoverflow.com/questions/tagged/dask
.. _`Github Issue Tracker`: https://github.com/dask/dask/issues/
.. _`Gitter chat`: https://gitter.im/dask/dask


Separate Code Repositories
--------------------------

Dask maintains code and documentation in a few git repositories hosted on the
Github ``dask`` organization, http://github.com/dask.  This includes the primary
repository and several other repositories for different components.  A
non-exhaustive list follows:

*  http://github.com/dask/dask: The main code repository holding parallel
   algorithms, the single-machine scheduler, and most documentation
*  http://github.com/dask/distributed: The distributed memory scheduler
*  http://github.com/dask/dask-ml: Machine learning algorithms
*  http://github.com/dask/s3fs: S3 Filesystem interface
*  http://github.com/dask/gcsfs: GCS Filesystem interface
*  http://github.com/dask/hdfs3: Hadoop Filesystem interface
*  ...

Git and Github can be challenging at first.  Fortunately good materials exist
on the internet.  Rather than repeat these materials here, we refer you to
Pandas' documentation and links on this subject at
http://pandas.pydata.org/pandas-docs/stable/contributing.html


Issues
------

The community discusses and tracks known bugs and potential features in the
`Github Issue Tracker`_.  If you have a new idea or have identified a bug, then
you should raise it there to start public discussion.

If you are looking for an introductory issue to get started with development,
then check out the `introductory label`_, which contains issues that are good
for starting developers.  Generally, familiarity with Python, NumPy, Pandas, and
some parallel computing are assumed.

.. _`introductory label`: https://github.com/dask/dask/issues?q=is%3Aissue+is%3Aopen+label%3Aintroductory


Development Environment
-----------------------

Download code
~~~~~~~~~~~~~

Clone the main Dask git repository (or whatever repository you're working on)::

   git clone <EMAIL>:dask/dask.git


Install
~~~~~~~

You may want to install larger dependencies like NumPy and Pandas using a
binary package manager like conda_.  You can skip this step if you already
have these libraries, don't care to use them, or have sufficient build
environment on your computer to compile them when installing with ``pip``::

   conda install -y numpy pandas scipy bokeh

.. _conda: http://conda.pydata.org/docs/

Install Dask and dependencies::

   cd dask
   pip install -e .[complete]

For development, Dask uses the following additional dependencies::

   pip install pytest moto mock


Run Tests
~~~~~~~~~

Dask uses py.test_ for testing.  You can run tests from the main dask directory
as follows::

   py.test dask --verbose --doctest-modules

.. _py.test: http://pytest.org/latest/


Contributing to Code
--------------------

Dask maintains development standards that are similar to most PyData projects.  These standards include
language support, testing, documentation, and style.

Python Versions
~~~~~~~~~~~~~~~
{'fraction_non_alphanumeric': 0.10541128310093387, 'fraction_numerical': 0.0028143789177433797, 'mean_word_length': 3.9293820933165193, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '478617', 'n_tokens_mistral': 2150, 'n_tokens_neox': 2036, 'n_words': 924}