All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Update types, which supports a new index type: Single Option protection indices
- Add documentation to the multi equity basket demo
- Update to latest types which renamed
buffer
parameters for somewhat increased clarity.
- Restore functionality of
include_non_prod
- Upgrade types
- Add
collapse-root-models
to type generation
- Support buffer indices
- Support
?fields
when getting indices
- Update types to support decrements on arbitrary MQ indices not just TRs
- switch to pydantic V2
- add staging support
- Derive timezone, runtime on the server
- Move to server side templating
- allow pydantic 2
- allow specifiying whether dividends are reinvested at open, or close, for TRs
- fix bug regarding launch date
- fix bug where the wrong output metric was disseminated to bloomberg for decrements
- cleanup to a class based architecture - no API change
- Huge cleanup to template.jsons - all info was moved into the pydantic model and there is now a function to neatly generate a template from those models
- Decrement input parameters have changed
- Remove XNYS as the default since it does not make sense in this global library (which in fact to date has mostly been used for EUR stocks)
- fix merge job since branch is different
- add
raise_perm_errors
(defaults toFalse
, current behavior) toget_security_metrics
calls
- duplicate
currency
to top level also; that's where merqube.com reads it from (not the inner spec which is needed for runtime)
- move json parsing into cli script, so we can programatically use the underlying functions to create indices in a loop
- update to latest types
- allow specifying a default request id prefix, so all requests made from the same "project" can be tracked easily
- circleci improvements
- bugfix; for index templates,
base_value
wasn't propogating correctly intobase_val
- allow (but not require) pandas2
- fix issue with timezone on logger tests
- support manifest locking/unlocking
- some minor breaking changes for index clients (not 1.0.0 yet!) RE positionl vs kwargs - index client functions now accept name or id
- add lots more testing
- README update. Need to enhance the circleci logic so we dont have merge job failures for readme updates that dont bump the version
- fix typo
- switch to pydantic for validation and client models; eliminate json checking
- add some extra example docs for equity baskets
- add support for multiple equity baskets with corax
- add walkthrough for multiple equity baskets
- finish merge job
- add merge job
- Add support for updating target portfolios of an existing basket index
- Restructure to support corax on multi-baskets
- support passing in the pydantic object or dict in client lib functions
- add
MERQ_API_KEY
in circle-ci secrets that allows int tests. Add said int tests - add
start_date
andend_date
functionality into getting target portfolios
- some index specs use
calendar
while others useholiday_spec
- set both.
- Use ENV for APIKey, so configs are shareable.
- Allow users to specify their own TR indices
- Reorganize to have a single click script before we have a ton of them
- add decrement index template
- add holiday spec
- Add client and template for creating multiple stock equity baskets (no corax)
- Add client and template for creating a single stock total return index with corax
- Make base classes private now that nothing is importing them directly.
- copy the headers object if the client passes it in
- add the failed request id into the
APIError
object, and logging that occurs on failure - Move request id header generation into
MerqubeAPISession
instead of the_Base
- Implement NotImplemented returns/metrics methods for single index
- add more power to the secapi mocker; can now also mock session level methods
- add intraday support
- kill
get_client
from secapi and move module - add logging to the secapi mocker
- add class for managing a single index
- more tests
- add start of Index API Client
- add unified client that mixins both to produce one total-api client
- repo re-organization
- add logging statement to debug cache issues
- Improve logging message (it wasn't using
urljoin
)
- standardize/consistent naming (
user_session
vssession
) - support arbitrary args in mock class call
- allow positional on public methods
- Fix bug; artificial restriction on secnames or ids; it is currently legal (whether it should be, different question..) to use neither, which results in the metric across all securities
- Add
get_security_metrics
, the main call for retrieving metrics from Merqubes security api
- First batch of secapi client code
- secapi mocker
- add logging lib
- Add missing py.typed file, and PYPI description
- Relax more dependency constraints (pandas, numpy)
- Do not restrict 3.10
- Release base session
- Repo creation