CHANGELOG

Release Notes
=============

Release
-------
* v2.3.2
  - fix: replace silent TypeError in __request_data with _MambuJSONEncoder;
    previously json.dumps failures were swallowed and the raw object handed
    to requests, breaking with ValueError at form-encoding time
  - fix: _MambuJSONEncoder handles datetime, enum.Enum and Decimal recursively
    (only dict/list serialized; MultipartEncoder and None passed through)
  - fix: serialize Enum values in __patch_op to avoid json.dumps failures on
    fields like gender (Gender.FEMALE)
* v2.3.1
  - fix: repay() and apply_fee() use loan's own timezone (from _tzattrs) instead
    of tzlocal() when stamping naive valueDate; fixes incorrect UTC offset on
    AWS Lambda and other UTC-runtime environments
  - fix: disburse() sub-hour UTC offsets (e.g. +05:30, -04:30) now preserved;
    replaces [-6:-3] integer-hours-only slice with full offset parsing
* v2.3.0
  - feat: new update_user_roles.py utility script for bulk role updates
  - feat: role validation supports both role name and role ID
  - docs: comprehensive README for MambuPy utilities
* v2.2.1
  - bugfix for mambuutil.date_format as_utc conversions
  - drop python 2 support remnants
* v2.2.0
  - BREAKING: Completely removed Mambu API v1 support (MambuPy.rest module)
  - Removed all v1-related code, tests, and documentation
  - Removed v1-only URL builder functions from mambugeturl.py
  - legacy: standalone v1 mambuactivity module
* v2.1.1
  - test: fix intermittent timing assertion in test__get_several
  - fix: remove future library dependency for Python 3.12+ compatibility
  - test: reset SessionSingleton in setUp for connector tests
  - devops: support for python 3.12
  - devops: python3 several versions support.
  - feat: implement Singleton pattern for HTTP session management
  - feat: add persistent session configuration toggle
* v2.1.0
  - Allow update/create/patch/delete with user credentials besides
    default
* v2.0.0
  - v2 stable release.
  - 500 error code to status_forcelist for retries

Beta
----
* v2.0.0b52 2025-02-19
  - back to ONE increments on version numbers with light/full flavor
    packages
* v2.0.0b50 2025-02-17
  - fix: log should not print sensitive data
  - refact: v2 MambuStruct possible optimization loading CFs.
  - devops: codeowners file.
  - feat: logging configuration in MambuPy, using yamls.
  - refact: unittests assertRaisesRegex.
  - docs: cookbook and a better introduction to MambuPy development.
  - breaking: no more Python 2 support!
* v2.0.0b48 2024-11-04
  - fix: debug get_several entities, when no elements were responded
  - fix: v2 Entities.get_all() allow kwargs arguments
  - fix: log should not print sensitive data
  - refact: get and refresh operations to mambu support arbitrary args
  - devops: docs job python env version 3.8
  - refact: write operations to mambu support arbitrary args
  - feat: orm loans include assigned centre information
  - feat: mambuloan adjust_transaction method
* v2.0.0b46 2024-09-24
  - bugfix: convert dict to attrs base case, comparisons may fail.
  - bugfix: updateCFs from list, comparisons may fail.
  - feature: convertDict2Attrs, iterate over MambuPy objs.
  - bugfix: v2 convertDict2Attrs constantFields.
  - feature: MambuLoan repayment transaction channels and custom fields support.
* v2.0.0b44 2024-08-20
  - feature: add method get_transactions to mambuloan
  - bugfix: v2 getEntities assignnewproperty without '_' prefix.
  - connector rest retries, ignore 500 errors.
* v2.0.0b42
  - delete mambu entities
* v2.0.0b40
  - adjust loan account transactions
* v2.0.0b38
  - apply fee transactions to loan accounts
* v2.0.0b36
  - backup_db use mambu API v2 endpoints
* v2.0.0b34
  - MambuEntity._extract_field_path for patch operations returns "/field_name" by default.
* v2.0.0b32
  - REST connector httperror raises MambuError, different Mambu error responses
  - v2 code black linting
* v2.0.0b30
  - MambuCentre v2 assignedBranch field allows get_assignedBranch() method
* v2.0.0b28
  - ORM support with v2.0.0b27 features included in REST API
* v2.0.0b27
  - MambuEntityCF list (GROUPED) cfs may have values with different
  sets of CFs, all allowed in the group. This version traverses all
  values searching for all the CFs in the Group, instantiating the
  correspondent MambuCF. It ignores the _index key, since it's not
  part of a CF, it's just part of the GROUP meta-information
* v2.0.0b26 2023-10-19
  - even patch versions are full that supports REST API and ORM
* v2.0.0b25 2023-10-19
  - odd patch versions are lite that only supports REST API, no ORM
* v2.0.0b24
  - mambuloan writeoff method
* v2.0.0b23
  - mambuloan already has default_tzattrs (useful for blank loan creation)
* v2.0.0b22
  - upgrade request-toolbelt requirement
* v2.0.0b21
  - mambugroup already has default_tzattrs (useful for blank group creation)
* v2.0.0b20
  - requests library upgrade
* v2.0.0b18
  - provide default tzattrs in entities init
  - allow more tzattrs to be appended to the default ones
  - mambuclient already has default_tzattrs (useful for blank client creation)
* v2.0.0b17
  - bugfix: new entities need a default connector
* v2.0.0b16
  - reject loan accounts
  - close loan accounts
  - repay loan accounts
  - logging enabled propagating logs to whomever uses MambuPy
  - MambuPyv1 prevent user and password leaked on request URL when sent via kwargs
  - apipagination configuration added. Defaults to 50 as per "Optimizing data extraction from Mambu via APIs" analysis
* v2.0.0b15
  - bugfix: apiv2 patch when adding nonexistent field in entity.
* v2.0.0b14
  - MambuLoan disbursement uses tzattrs for default TimeZone
* v2.0.0b12
  - utils module for utility scripts that user MambuPy
  - utils deactivate users script
* v2.0.0b11
  - MambuLoans approval and disbursement methods.
  - bugfix: tzattrs for VOs
  - utils directory for scripts using MambuPy for certain use cases
  - updating CFs' values shouldn't touch entities.
* v2.0.0b10
  - CustomFields getEntities support
  - Linked type CustomFields getEntities instantiates MambuEntity
  - MambuRole entity
  - REST connector user credentials to mambu, besides default, supported
* v2.0.0b9
  - Commentable bugfix: some entities weren't inheriting from the right place.
* v2.0.0b8
  - Commentable interface bugfix: new comments go to the beginning.
* v2.0.0b7
  - MambuCustomField entities with endpoints
  - rest1to2 adapter improvements on mambustruct
  - codesmells refactor
  - v2 requests with retry mechanism
  - v2 requests with optional list requests for pagination
  - bugfix: v2 MambuUser filters don't use branchId always
* v2.0.0b5
  - GET customfields endpoints
  - commentable interface: get and post comments on Mambu entities
  - rest1to2 (aka restito) adapter to use MambuREST v2 with
    MambuPy v1 interfaces
  - solved several codesmells
* v2.0.0b4
  - changeState endpoint added for Mambu Loans
* v2.0.0b1 2022-05-17
  - MambuTasks and MambuLoans have special entities instantiation
    methods for taskLink and accountHolder properties.
  - First beta of MambuPyv2 release
* v2.0.0a5-dev5
  - automatic and controlled instantiation of all nested Mambu
    Entities inside other MambuPy Entities
  - dynamic creation of get_ methods for individual nested Mambu
    Entities properties
  - further documentation improvements
* v2.0.0a5-dev4 2022-05-09
  MambuApi REST v2
  - MambuEntities complete:
    Client, Group, LoanAccount, Product, Branch,
    Centre, User, Task
  - MambuValueObjects complete: Address, IDDocument,
    DisbursementDetails, UserRole, GroupMember, GroupRole
  - Interfaces complete: writable, searchable, attachable
  - Entities complete: installment, entityCF
  - extract and update VOs
* v2.0.0a5-dev3 2022-03-17
  - MambuApi REST v2, MambuProduct entity
* v2.0.0a5-dev2 2022-03-16
  - MambuApi REST v2, MambuUser entity
* v2.0.0a5-dev1 2022-03-15
  - MambuApi REST v2, MambuBranch entity
  - MambuApi REST v2, MambuCentre entity
* v2.0.0a3 2022-03-08
  - Mambu API REST v2, support for patching entitites
  - MambuAPI REST v2, MambuGroup entity
  - MambuAPI REST v2, MambuClient entity
* v2.0.0a2 2022-02-23
  - Mambu API REST v2, support for creation of entities
* v2.0.0a1 2022-02-18
  - support for Mambu API REST v2, work in progress... check api directory
  - using a loan account as a sample for all development...
  - support for instancing (get and get_all endpoints)
  - support for instancing through search
  - custom fields in entities
  - upload attachments
  - update of entities