Skip to content

Releases: box/box-python-sdk

Version 2.0.0a2

Version 2.0.0a2 Pre-release
Pre-release

Choose a tag to compare

@jmoldow jmoldow released this 03 Sep 01:03

Breaking Changes

  • Events.get_events(...) now returns a list of Event instances rather than a list of dict
    representing events. Event inherits from Mapping but will not have all the same capabilities as
    dict.
    • Your code is affected if you use Events.get_events(...) and expect a list of dict rather than a list of
      Mapping. For example, if you use __setitem__ (event['key'] = value), update(), copy(), or
      if your code depends on the str or repr of the Event. Use of __getitem__ (event['key']),
      get(), and other Mapping methods is unaffected. See
      https://docs.python.org/2.7/library/collections.html#collections-abstract-base-classes for methods supported on
      Mapping instances.
    • Migration: If you still need to treat an Event as a dict, you can get a deepcopy of the original dict
      using the new property on BaseAPIJSONObject, response_object.

Features

  • Added more flexibility to the object translation system:
    • Can create non-global Translator instances, which can extend or
      not-extend the global default Translator.
    • Can initialize BoxSession with a custom Translator.
    • Can register custom subclasses on the Translator which is associated
      with a BoxSession or a Client.
    • All translation of API responses now use the Translator that is
      referenced by the BoxSession, instead of directly using the global
      default Translator.
  • Added an Event class.

Other

  • Added extra information to BoxAPIException.
  • Added collaboration() method to Client.
  • Reworked the class hierarchy. Previously, BaseEndpoint was the parent of BaseObject which was the parent
    of all smart objects. Now BaseObject is a child of both BaseEndpoint and BaseAPIJSONObject.
    BaseObject is the parent of all objects that are a part of the REST API. Another subclass of
    BaseAPIJSONObject, APIJSONObject, was created to represent pseudo-smart objects such as Event that are not
    directly accessible through an API endpoint.
  • Fixed an exception that was being raised from ExtendableEnumMeta.__dir__().

Version 2.0.0a1

Version 2.0.0a1 Pre-release
Pre-release

Choose a tag to compare

@jmoldow jmoldow released this 19 Aug 17:35

Breaking Changes

  • Events.get_events(...) now returns a list of Event instances rather than a list of dict
    representing events. Event inherits from Mapping but will not have all the same capabilities as
    dict.
    • Your code is affected if you use Events.get_events(...) and expect a list of dict rather than a list of
      Mapping. For example, if you use __setitem__ (event['key'] = value), update(), copy(), or
      if your code depends on the str or repr of the Event. Use of __getitem__ (event['key']),
      get(), and other Mapping methods is unaffected. See
      https://docs.python.org/2.7/library/collections.html#collections-abstract-base-classes for methods supported on
      Mapping instances.
    • Migration: If you still need to treat an Event as a dict, you can get a deepcopy of the original dict
      using the new property on BaseAPIJSONObject, response_object.

Features

  • Added ability to create custom subclasses of SDK objects with _item_type defined.
  • Added an Event class.

Other

  • Added extra information to BoxAPIException.
  • Added collaboration() method to Client.
  • Reworked the class hierarchy. Previously, BaseEndpoint was the parent of BaseObject which was the parent
    of all smart objects. Now BaseObject is a child of both BaseEndpoint and BaseAPIJSONObject.
    BaseObject is the parent of all objects that are a part of the REST API. Another subclass of
    BaseAPIJSONObject, APIJSONObject, was created to represent pseudo-smart objects such as Event that are not
    directly accessible through an API endpoint.

Version 1.5.3

Choose a tag to compare

@jmoldow jmoldow released this 26 May 20:40
  • Bugfix so that JWTAuth opens the PEM private key file in 'rb' mode.

Version 1.5.2

Choose a tag to compare

@jmoldow jmoldow released this 19 May 01:15
  • Bugfix so that OAuth2 always has the correct tokens after a call to refresh().

Version 1.5.1

Choose a tag to compare

@jmoldow jmoldow released this 19 May 01:17
  • Added a revoke() method to the OAuth2 class. Calling it will revoke the current access/refresh token pair.

Version 1.5.0

Choose a tag to compare

@Jeff-Meadows Jeff-Meadows released this 23 Mar 17:08
Merge pull request #121 from Jeff-Meadows/docs

Docs

Version 1.4.2

Choose a tag to compare

@jmoldow jmoldow released this 23 Feb 22:25
  • Make sure that __all__ is only defined once, as a list of str. Some
    programs (e.g. PyInstaller) naively parse init.py files, and if
    __all__ is defined twice, the second one will be ignored. This can cause
    __all__ to appear as a list of unicode on Python 2.

  • Create wheel with correct conditional dependencies and license file.

  • Change the license meta-data from the full license text, to just a short
    string, as specified in [1][2].

    [1] https://docs.python.org/3.5/distutils/setupscript.html#additional-meta-data

    [2] https://www.python.org/dev/peps/pep-0459/#license

  • Include entire test/ directory in source distribution. test/init.py was
    previously missing.

  • Update documentation.

Version 1.4.1

Choose a tag to compare

@Jeff-Meadows Jeff-Meadows released this 11 Feb 21:40
Merge pull request #114 from Jeff-Meadows/slinkurl

Expose file.get_shared_link_download_url method.

Version 1.4.0

Choose a tag to compare

@Jeff-Meadows Jeff-Meadows released this 05 Jan 19:47
Merge pull request #70 from box/jwt-key-rotation

Add 'kid' (jwt key id) to JWTAuth header

Version 1.3.4

Choose a tag to compare

@Jeff-Meadows Jeff-Meadows released this 05 Jan 19:37
Merge pull request #103 from Jeff-Meadows/redis_import

Bugfixes from dev token release.