daf.typing fake

The pandas package doesn’t provide type annotations. This means anywhere we use pandas.DataFrame or pandas.Series it becomes Any, which poisons any Union using them to become Any as well, making mypy type checking useless. As a workaround we define fake DataFrame and Series and use them instead. To shut mypy up when using this fake types, we need to populate it with all the public interface of the real pandas classes, with a liberal use of the Any type. Sigh.

Todo

If/when pandas will provide some form of type annotations, get rid of the fake_pandas module.

class daf.typing.fake_pandas.Series[source]

Bases: object

Fake class for mypy.

class daf.typing.fake_pandas.DataFrame[source]

Bases: object

Fake class for mypy.

The scypy.sparse package doesn’t provide type annotations. This means anywhere we use sparse.scipy.spmatrix, sparse.scipy.csr_matrix or sparse.scipy.csc_matrix, they becomes Any, which poisons any Union using the type to become Any as well, making mypy type checking useless. As a workaround we define fake spmatrix and cs_matrix and use them instead. To shut mypy up we need to populate it with all the public interface of the real scipy.sparse classes with a liberal use of the Any type. Sigh.

Todo

If/when scipy.sparse will provide some form of type annotations, get rid of the fake_sparse module.

class daf.typing.fake_sparse.spmatrix[source]

Bases: object

Fake class for mypy.

class daf.typing.fake_sparse.cs_matrix[source]

Bases: spmatrix

Fake class for mypy.