Migrating from v3.x to v4.x
This page provides information to help users transition from version 3 to version 4 of analytix.
Important
Only changes between v3.6.1 and v4.0.0 are detailed here. For additional changes, view the changelog.
Note
If you believe this page is incomplete, please open an issue on the GitHub repo.
The Clients
- The
Analytics
class has been renamed toClient
- The
AsyncAnalytics
class has been renamed toAsyncClient
- There is a new
AsyncBaseClient
which can be used when building web applications - The
with_secrets()
classmethod no longer exists -- you should now pass the path to your secrets file directly to the constructor - The
close_session()
method has been renamed toteardown()
- The
retrieve()
method has been renamed toretrieve_report()
- The sync client no longer has a separate implementation, and is instead a wrapper of the async client
- The clients now use AIOHTTP instead of HTTPX for requests
- Update checks now happen upon client construction and cannot be surpressed
- The clients now have better support for multiple channels
Authorisation
- Out-of-bounds (manual copy/paste) authorisation is no longer supported
- Authorisation parameters should now be passed to the client constructor rather than to instance methods
- Authorisation can no longer be forced using the
force
kwarg - The access token refresh token can no longer be skipped
- State token confirmation is now performed
- Replay protection is now present
- Web secrets are now supported
- The
Secrets.to_dict()
method now returns the data as a complete file, rather than just the inner-most dictionary - The
Tokens.from_data()
method has been renamedTokens.from_dict()
- Secrets files can no longer be opened asynchronously
- Token files can no longer be opened or written to synchronously
Reports
- The
Report
class has been renamed toAnalyticsReport
- The
ColumnHeader.from_json()
classmethod has been removed - The
ColumnHeader.data
property has been added AnalyticsReport.data
has been replaced withAnalyticsReport.resource
, which is aResultTable
instance- You can still access the raw data using the
data
attribute of theresource
instance
- You can still access the raw data using the
AnalyticsReport.column_headers
is nowAnalyticsReport.resource.column_headers
- The
AnalyticsReport.rows
property has been removed - The
AnalyticsReport.ordered_dimensions
and.ordered_metrics
properties have been removed - The
AnalyticsReport.dimensions
and.metrics
properties now mirror the behaviours of their ordered counterparts - The
AnalyticsReport.numeric
and.non_numeric
properties have been added - JSON reports can now be properly written as one-line files
- JSON and CSV reports can no longer be written asynchronously
- You can now control whether JSON, CSV, Excel, Feather, and Parquet files are overwritten (the default is
True
) - Modin support has been removed
AnalyticsReport.to_dataframe()
has been renamed to.to_pandas()
- Converting to a Polars DataFrame no longer requires the use of PyArrow
Groups
- You can now fetch information on groups and group items!
client.fetch_groups()
client.fetch_group_items()
Miscellaneous
- Errors have been simplified, and some error messages have been improved