- Make sure model_description always returns a Model instance (#112)
- Make formulae reach transformations before outer names (#109)
- Update is_categorical_dtype for pandas >= 2.10 (#105)
- Add automatic versioning to the library (#106)
- Interpret True, False, and None as Python literals (#107)
- Fix bug when intercept is inserted after categorical variable (#102)
- The library now supports configuration variables (#95)
- Allow evaluations on new data with new categories (#96)
- Return ready to be used group-specific effects design matrix when there are new groups (#100)
- Fix typo in str (#99)
- Implement a @register_stateful_transform decorator to register new stateful transformations (#85)
- Fix evaluation of new offset terms with call arguments (#81)
- Multiple calls with unnamed attributes resulted in errors due to trying to hash unhashable types (#88)
- Term names with call components now use the proper lexeme when one argument is a string (#89)
- Detect stateful transformations by attribute instead of name (#90)
- Moved tests out of the
formulae
directory (#91) - Use pyproject and improve deployment workflow (#92)
- Fixed a bug in the levels of interaction terms involving numeric terms with multiple columns (b4a1f73)
- Fixed a bug in
CategoricalBox
. Now it considers the order of the categories ifdata
is ordered andlevels
isNone
(#73)
- Fixed a bug in
CategoricalBox
because it failed to convert categorical series to numpy arrays. Now it works. (#72)
- Renamed
ResponseVector
toResponseMatrix
(#71) - Renamed
design_vector
todesign_matrix
inResponseMatrix
(#71) - Updated docstrings in
formulae/matrices.py
(#71)
- Removed
binary
andsuccess
attributes fromResponseMatrix
(#71)
- We can create our own encodings such as Treatment or Sum encoding. These are subclasses of
Encoding
. - Added two aliases
T
andS
that are shorthands ofC(var, Treatment)
andC(var, Sum)
respectively. - DesignVector, CommonEffectsMatrix and GroupEffectsMatrix now retrieve their values when passed to
np.array()
andnp.asarray()
. - Add
poly()
stateful transform. na_action
indesign_matrices()
can be"pass"
which means not to drop or raise error about missing values. It just keeps them (#69)design_matrices()
gains a new argumentextra_namespace
. It allows us to pass a dictionary of transformations that are made available in the environment where the formula is evaluated (#70)
- Fixed a bug in the addition of lower order terms when the original higher order term wasn't full-rank.
- Columns for categorical terms are integer by default. They are casted to float only if there are other float-valued columns in the design matrix.
- Updated str and repr methods of
ResponseVector
,CommonEffectsMatrix
, andGroupEffectsMatrix
. - Added str and repr methods for
DesignMatrices
. - Added get_item method for
DesignMatrices
. - Added support for comparison operators within function calls.
- Added
bs()
, a stateful transformation for basis splines (#52) - Subset notation in response terms can now be an identifier. It is interpreted as a string (#52)
True
,False
andNone
are correctly evaluated in function calls arguments now (#53)- The
.set_type()
on each term used to be called twice. Now we call it once (#53) - Added the function
get_function_from_module()
. Now we don't use Python'seval()
anymore (#53)
- Revert changes back to v0.1.2
- Revert changes back to v0.1.1
- Added
prop()
function to handle response terms that a proportion computed from two variables (#40) - Categorical responses can contain more than one level (#40)
- Added
binary()
function to convert numeric/categorical variables into 0-1 variables (#41) - Modified
C()
to make it simpler to obtain categorical variables and manipulate their levels (#41) - Added
offset()
(#42)
- Fix group-specific effects matrix shape (#35)
- Add a Getting started section to webpage and remove that content from README.md (#36)
- Factor of group specific effect can be an interaction now (#31)
- Full interaction does not result in shared components anymore (#30)
- Add information about levels to interaction terms (#33)
- Added Internals section to documentation (#28)
- Nested stateful transofrmations now work as expected (#19)
- Added a changelog file to track changes (#20)
- Formulae now has a github pages website (#21)