Skip to content
This repository has been archived by the owner on Jan 13, 2023. It is now read-only.

Releases: iotaledger/iota.py

PyOTA v2.0.5

24 Feb 22:13
08230b0
Compare
Choose a tag to compare
  • [#157] Added were_addresses_spent_from API command (thanks @lunfardo314 for reporting and @scottbelden for implementing!).
  • [#100] ProposedTransaction now properly converts the tag parameter into a Tag object (thanks @lukzmu for reporting and @rpitonak!).
  • [#145:WIP]iota/transaction/creation.py now conforms to PEP-8 (thanks @rpitonak).
  • Fixed fragile code in PrivateKey.get_digest() (thanks @phil-zxx!).
  • Fixed incorrect Discord link in README.rst (thanks @pcwu!).
  • Minor enhancements to pyota-cli command:
    • Now respects IPython profile settings.
    • No longer outputs "now exiting InteractiveConsole..." on exit.
  • Added missing dependencies to test-runner extra.
  • Future-proof project metadata check during Travis builds.
    • Prevents build failures if we add Python code snippets to README.rst.
  • Fixed incorrect type hints.
  • Fixed formatting in CONTRIBUTING.rst.

Thanks to the following individuals for their contributions to PyOTA v2.0.5:

Signature/Checksums

Instructions: Download the source (PyOTA-2.0.5.tar.gz) or wheel (PyOTA-2.0.5-py2.py3-none-any.whl) distribution (see links at the bottom of the release notes) and compute the SHA-256 hash of the downloaded file using sha256sum (macOS/Linux) or CertUtil (Windows).

Compare your SHA-256 hash against the value posted here. If the value is different, please do not use the downloaded file! Report any checksum problems on the PyOTA Bug Tracker as soon as possible.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.5
* [#157] Added `were_addresses_spent_from` API command (thanks @lunfardo314 for reporting and @scottbelden for implementing!).
* [#100] `ProposedTransaction` now properly converts the `tag` parameter into a `Tag` object (thanks @lukzmu for reporting and @rpitonak!).
* [#145:WIP]`iota/transaction/creation.py` now conforms to PEP-8 (thanks @rpitonak).
* Fixed fragile code in `PrivateKey.get_digest()` (thanks @phil-zxx!).
* Fixed incorrect Discord link in `README.rst` (thanks @pcwu!).
* Minor enhancements to `pyota-cli` command:
  * Now respects IPython profile settings.
  * No longer outputs "now exiting InteractiveConsole..." on exit.
* Added missing dependencies to `test-runner` extra.
* Future-proof project metadata check during Travis builds.
  * Prevents build failures if we add Python code snippets to `README.rst`.
* Fixed incorrect type hints.
* Fixed formatting in `CONTRIBUTING.rst`.

Thanks to the following individuals for their contributions to PyOTA v2.0.5:

* [@lukzmu](https://github.com/lukzmu)
* [@lunfardo314](https://github.com/lunfardo314)
* [@pcwu](https://github.com/pcwu)
* [@phil-zxx](https://github.com/phil-zxx)
* [@rpitonak](https://github.com/rpitonak)
* [@scottbelden](https://github.com/scottbelden)

# Binary Distribution Checksums
**Instructions:**  Download the source (`PyOTA-2.0.5.tar.gz`) or wheel (`PyOTA-2.0.5-py2.py3-none-any.whl`) distribution (see links at the bottom of the release notes) and compute the SHA-256 hash of the downloaded file using [`sha256sum`](https://linux.die.net/man/1/sha256sum) (macOS/Linux) or [`CertUtil`](https://superuser.com/a/898377) (Windows).

Compare your SHA-256 hash against the value posted here.  If the value is different, please **do not use the downloaded file!**  Report any checksum problems on the [PyOTA Bug Tracker](https://github.com/iotaledger/iota.lib.py/issues/) as soon as possible.

* PyOTA-2.0.5.tar.gz: 3e8512b430a10a92679b3db5911174d053232b630ab00629a4e73bff59ba0532
* PyOTA-2.0.5-py2.py3-none-any.whl: 85f6b08784a01668140ef328c2949fcccd8d9fcba4c04646ea5dbfd1358a47a5
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEc9vOP4UernObqSUWjIY/jl7U00MFAlqR42EACgkQjIY/jl7U
00N3dhAAsrEU3kX2aUH7H5CDkSSmqhQhG74H1neSXsZOt+KZrhYFHDt0EPhFzvrf
nEnl8dncoC3fSbO7uXLuwXEbz8txPVB5D6kCdzM/L6FWcnk8ij5B3sviSr6KY6Gn
YDeCrJ88wiMyQ3ILZzlN0kM2xyNcX9/1ji2r6JxzNhhnBR7Af4P+oVP8Frd4s/pZ
l8X4UXEpqrlJZgT9HXXqN6ZRruemvlEbtoz9hF02n4y1oHOGUbLg1qhuh51Y7rKt
cQqodqrLkiHeLUFXikHiNw33qiUKqg6wBUevtT/NY2EuAbAf8HCstTM0J60oT8hY
5j/IzFTwzvKeYuofX2Eaglow2DhoyQY4OYsBESnEb0Mu7mJaPehInP3QKWos/tTW
z1IPMRcL+MnVVWUai0XO4Os5TSrkwibcVLx+8r7ZnbbH8Yo55mHpbt/CReRbGq3F
2FpZs6024wkRMAUor94UaIVG6+yQf7yHteyGvtwz5too85nkd6N/FeGFok9T9p/O
VoDPMvseXziWu/Z/IgocTu2eSKVdlZJzQiE0WwD1pohMNeyJ5Z6H7u1bZX53EZV/
GvyVhr6uwvZn6Su/yurgROis97OxKdqeoEPW4mt0XAloL3NITfZvGeItcdOrihbe
AYLwxCOHgHOWVakDIkgbFMFnmGQsc1hnCudd129RieMos52Y+7s=
=WY8c
-----END PGP SIGNATURE-----

PyOTA v2.0.4

26 Jan 23:06
540668b
Compare
Choose a tag to compare

⚠️ This release contains a few changes that may be backwards-incompatible, depending on how your application is configured. Check the Backwards-Incompatible Changes section for more information! ⚠️

Backwards-Incompatible Changes

Renamed CLI Command

The iota-cli command has been renamed to pyota-cli, to avoid conflicts with the cli-app project.

If PyOTA is already installed, the iota-cli command will continue to work (the pyota-cli command will be installed alongside it). However, if you install PyOTA into a new virtualenv, it will not install the iota-cli command, only pyota-cli!

Deprecated Methods

The following methods now emit a DeprecationWarning when invoked. Depending on how your application is configured, these warnings may be converted into exceptions.

  • TryteString.as_bytes() (use TryteString.encode() instead).
  • TryteString.as_string() (use TryteString.decode() instead).
  • TryteString.from_string() (use TryteString.from_unicode() instead).

To resolve the DeprecationWarning, replace usages of the deprecated methods with the replacement versions as noted above.

Tip: After making this change, your application will no longer be compatible with PyOTA <= 2.0.4; it is recommended that you also add pyota >= 2.0.4 to your project's setup.py or requirements.txt file!

If your application does not use any of the methods listed above, no action is required.

Changelog

  • (#121) Added is_promotable and promote_transaction API methods (thanks @scottbelden!).
  • (#38) Added is_reattachable API method (thanks @jinnerbichler!).
  • (#122) Rename iota-cli command to prevent conflict with cli-app project (thanks @plenarius!).
  • (#129) Added authentication argument to HttpAdapter (thanks @HerrMuellerluedenscheid!).
  • (#105) Added timeout argument to HttpAdapter (thanks @jinnerbichler!).
  • (#111) add_neighbor and remove_neighbor now also accept URIs that start with tcp:// (thanks @danielfaust for reporting!).
  • (#92) Added offset and length arguments to PyCurl methods (thanks @mlouielu!).
  • (#90) Renamed the following methods:
    • TryteString.as_bytes() => TryteString.encode()
    • TryteString.as_string() => TryteString.decode()
    • TryteString.from_string() => TryteString.from_unicode()
  • (#130) Fixed incorrect type in get_tips response (thanks @za-uz for reporting!)
  • (#120) Fixed references to "standard" API in the documentation (thanks @rpitonak!).
  • Added helpers namespace to Iota (thanks @scottbelden!).
  • Added missing fields in transaction documentation (thanks @GalRogozinski!).
  • Made examples/send_transfer.py easier to read (thanks @maeck70!).
  • Added new setuptools extra "test-runner", to install detox.
    • Added more information about running unit tests to README.rst.
  • Added metadata check to the build process and fixed invalid syntax in README.rst.
  • Fixed incorrect type hint for find_transaction_objects.
  • Changed link in README.rst from Slack to Discord.

Special Thanks

Thank you to everyone who helped make this release a success!

And to the entire PyOTA community! Seriously, you guys rock!

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.4

**⚠️ This release contains a few changes that may be backwards-incompatible, depending on how your application is configured.  Check the Backwards-Incompatible Changes section for more information! ⚠️**

## Backwards-Incompatible Changes
### Renamed CLI Command
The `iota-cli` command has been renamed to `pyota-cli`, to avoid conflicts with the [cli-app](https://github.com/iotaledger/cli-app/blob/v1.0.8/package.json#L31) project.

If PyOTA is already installed, the `iota-cli` command will continue to work (the `pyota-cli` command will be installed alongside it).  However, if you install PyOTA into a new virtualenv, it will **not** install the `iota-cli` command, only `pyota-cli`!

### Deprecated Methods
The following methods now emit a `DeprecationWarning` when invoked.  Depending on how your application is configured, these warnings may be converted into exceptions.

* `TryteString.as_bytes()` (use `TryteString.encode()` instead).
* `TryteString.as_string()` (use `TryteString.decode()` instead).
* `TryteString.from_string()` (use `TryteString.from_unicode()` instead).

To resolve the `DeprecationWarning`, replace usages of the deprecated methods with the replacement versions as noted above.

**Tip: After making this change, your application will no longer be compatible with PyOTA < 2.0.4; it is recommended that you also add `pyota >= 2.0.4` to your project's `setup.py` or `requirements.txt` file!**

If your application does not use any of the methods listed above, no action is required.

## Changelog
* (#121) Added `is_promotable` and `promote_transaction` API methods (thanks [@scottbelden]!).
* (#38) Added `is_reattachable` API method (thanks [@jinnerbichler]!).
* (#122) Rename `iota-cli` command to prevent conflict with `cli-app` project (thanks [@plenarius]!).
* (#129) Added `authentication` argument to `HttpAdapter` (thanks [@HerrMuellerluedenscheid]!).
* (#105) Added `timeout` argument to `HttpAdapter` (thanks [@jinnerbichler]!).
* (#111) `add_neighbor` and `remove_neighbor` now also accept URIs that start with `tcp://` (thanks [@danielfaust] for reporting!).
* (#92) Added `offset` and `length` arguments to PyCurl methods (thanks [@mlouielu]!).
* (#90) Renamed the following methods:
    * `TryteString.as_bytes()` => `TryteString.encode()`
    * `TryteString.as_string()` => `TryteString.decode()`
    * `TryteString.from_string()` => `TryteString.from_unicode()`
* (#130) Fixed incorrect type in `get_tips` response (thanks [@za-uz] for reporting!)
* (#120) Fixed references to "standard" API in the documentation (thanks [@rpitonak]!).
* Added `helpers` namespace to `Iota` (thanks [@scottbelden]!).
* Added missing fields in transaction documentation (thanks [@GalRogozinski]!).
* Made `examples/send_transfer.py` easier to read (thanks [@maeck70]!).
* Added new setuptools extra "`test-runner`", to install [detox](https://pypi.python.org/pypi/detox).
    * Added more information about running unit tests to `README.rst`.
* Added metadata check to the build process and fixed invalid syntax in `README.rst`.
    * This should also fix rendering issues on [PyOTA's PyPI page](https://pypi.python.org/pypi/PyOTA).
* Fixed incorrect type hint for `find_transaction_objects`.
* Changed link in `README.rst` from Slack to Discord.

## Special Thanks
Thank you to everyone who helped make this release a success!

* [@danielfaust]
* [@GalRogozinski]
* [@HerrMuellerluedenscheid]
* [@jinnerbichler]
* [@maeck70]
* [@mlouielu]
* [@plenarius]
* [@rpitonak]
* [@scottbelden]
* [@za-uz]

And to the entire PyOTA community!  Seriously, you guys rock!


  [@danielfaust]: https://github.com/danielfaust
  [@GalRogozinski]: https://github.com/GalRogozinski
  [@HerrMuellerluedenscheid]: https://github.com/HerrMuellerluedenscheid
  [@jinnerbichler]: https://github.com/jinnerbichler
  [@maeck70]: https://github.com/maeck70
  [@mlouielu]: https://github.com/mlouielu
  [@plenarius]: https://github.com/plenarius
  [@rpitonak]: https://github.com/rpitonak
  [@scottbelden]: https://github.com/scottbelden
  [@za-uz]: https://github.com/za-uz

# Binary Distribution Checksums
* PyOTA-2.0.4-py2.py3-none-any.whl
    * sha256: f292408e9f4d98cceef6a04262ce074cf021936705d2f9f34cd38db49d25cea5
    * md5: 306c38ffea5ac4cd4c5c905225ff129e
* PyOTA-2.0.4.tar.gz
    * sha256: ace8454fd06252a76dc52fa09c94fd38ad78dc5cebd2ae4ab41ad4e26badaaa3
    * md5: a8cb576ef8d843b0f4de400d6174e947
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEc9vOP4UernObqSUWjIY/jl7U00MFAlprtDIACgkQjIY/jl7U
00O9CQ//bFlgudszjjn3lnYV31Pe/L9lQFS4t9BwJUrfRPzgA+RgKWXJjBAVPBx6
i58RCaSkq9TLtp8kVe7ltlQsM+eN2gXuaue9zaskiSGqnvNBl/BfKstIEB6Cf2LS
Kjjy3euqFaFm3Nu4Ku2GP78CId2y8kKVnp2qPDNT52i0kLy1Yyx8yiQFsj3c2czh
b/pmHPhIDcYYN9P9ThncIulOsalLQ/38C6lxxZyZZYkaiuNFxnlSn4qrS7v0ktWT
bEj0UmFtL462M/MUkCExrlCpov79WmIrL7E/3QZqa1j96U9eePIYLFGXG9zbm+N8
Fk+Czcj2OZd2sPouVu6fpS1mHmIbJvhUN85aGeTSMWDLccaxJZH1ow4Sq/zNWimO
tMcftiUWzjwO3CB6SOna3xHwUPT0gAklbCGzPEI9UUplV9K74m4EHKQqAuJ5GmN9
h6TDcR9jUaf1jXk8jMSUKZ0i8Xw/VsLwVZL3iSijwHpydXoOj2jCtzhh24x1XvPY
ZMjT6DkxmZsJBSeFTvv06Jblloc6B/UQsYKTKbRNKS62wjzuv83R7nFxamOXVTxD
Jk2+S+nR2V1nK8wIvYpxA+XfOB6Q0LGYw6leJfOOwP3kKNK5WrCOkckBCuQKj3A2
Z0MY8vDQtw/n5aRa6zQgrOLkYWfb2A4iGsW+bERUy64bgnaXFtc=
=x4WB
-----END PGP SIGNATURE-----

PyOTA v2.0.3

26 Dec 19:33
9389d17
Compare
Choose a tag to compare

Documentation

You can now find online documentation for PyOTA at https://pyota.readthedocs.io/

❤️ The documentation is for you! Please make good use of it, and if you have any questions/ideas about the PyOTA documentation, please post them on the PyOTA issue tracker!

🤔 If you are interested in contributing to PyOTA but aren't too familiar with the codebase yet, writing documentation is a great way to get started! Check the issue tracker for issues tagged with "documentation".

Enhancements and Bugfixes

  • [#113] Added check_consistency command. Thanks @scottbelden!
  • [#89] get_new_addresses now accepts an optional checksum parameter. When set to True, addresses will be generated with valid checksums. Thanks @plenarius!
    • The address_generator.py example script now accepts --security and --with-checksum options.
  • [#101] Fixed errors when using addresses with checksums in API commands. Thanks @plenarius!
  • [#78] Ported all PyOTA documentation to ReadTheDocs. Thanks @QuantumDamage!
    • See README.rst for instructions on how to build documentation locally.
  • [#103] Added documentation for multisig functionality. Thanks @QuantumDamage!
  • [#62] Fixed incorrect codec names in docstrings.
  • The REPL script now outputs more information when the --debug flag is used.
  • Fixed a few typos and improved docstrings.

Special Thanks

🖖 Thanks to the following individuals for their help reporting and fixing issues
for the v2.0.3 release:

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.3

## Documentation
You can now find online documentation for PyOTA at <https://pyota.readthedocs.io/>

❤️ The documentation is for you!  Please make good use of it, and if you have any questions/ideas about the PyOTA documentation, please post them on the [PyOTA issue tracker](https://github.com/iotaledger/iota.lib.py/issues)!

🤔 If you are interested in contributing to PyOTA but aren't too familiar with the codebase yet, writing documentation is a great way to get started!  Check the issue tracker for [issues tagged with "documentation"](https://github.com/iotaledger/iota.lib.py/issues?q=is%3Aopen+is%3Aissue+label%3Adocumentation).

## Enhancements and Bugfixes
* [#113] Added `check_consistency` command.  Thanks @scottbelden!
* [#89] `get_new_addresses` now accepts an optional `checksum` parameter.  When set to `True`, addresses will be generated with valid checksums.  Thanks @plenarius!
    * The `address_generator.py` example script now accepts `--security` and `--with-checksum` options.
* [#101] Fixed errors when using addresses with checksums in API commands.  Thanks @plenarius!
* [#78] Ported all PyOTA documentation to ReadTheDocs.  Thanks @QuantumDamage!
    * See `README.rst` for instructions on how to build documentation locally.
* [#103] Added documentation for multisig functionality.  Thanks @QuantumDamage!
* [#62] Fixed incorrect codec names in docstrings.
* The REPL script now outputs more information when the `--debug` flag is used.
* Fixed a few typos and improved docstrings.

## Special Thanks
🖖 Thanks to the following individuals for their help reporting and fixing issues
for the v2.0.3 release:

* @chriamue
* @HerrMuellerluedenscheid
* @plenarius
* @scottbelden

# Binary Distribution Checksums
* PyOTA-2.0.3-py2.py3-none-any.whl
    * sha256: 2284cc98ba4bae7671969fe9ae5e6c8102ac5996ae57e924fb21b82303b72029
    * md5: 6eaf4c2a09f82b2c7740a96e620d72a4
* PyOTA-2.0.3.tar.gz
    * sha256: 374dbe8681f012b82de832ba90c67d05cc6e9420e828380ff5ba9a88977c5ef0
    * md5: abfc112f3351dad9e844b957cd99cd7d
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEc9vOP4UernObqSUWjIY/jl7U00MFAlpCo+UACgkQjIY/jl7U
00PX6A/9EzKxsbjX8bswtxRvQfAMXHh2Iq4siu/sO3gXAfhweUpXiBqAyZYqCg3Y
orsvbR2p4pWeR85uulx2cf0xasHUZhxrxhpdEZPHos2eB08aKHkKjdzghFAO6ICv
lfFqn54/rBKnvJ3kYpPqWSzuLPOKzvj7fkytbAgxp+tVt/NjCvDKCQVpUA98cXv5
LziwPtINXCEPU7prINJ1uQ2uFJ9qnq958Ig+USI7XvXvaeMxWFSu0C5fuMF2SwLg
yMYh0dVtycFESeS46TzbCQ69KXSyb7cIL7nZ44Bl8J84iAUMnsjBweLDhsOtUwXw
kDfyT9xvpQ8Qn7WSfcVXQo8P2uVqtNA7JtNYps5Pa9q1DjOUyYLdaNR1npuqGVMj
DurWn9yUBnUiZhn+z2GNTlQwfHJDM4h8Zshw8rkAjgxYVfqyj9x/XQ3UYDLuX616
Ryd4zTA01SRv9SMpQYW95ft9doEKtuPVzvu2hrfVXnNSywFhnZxCNQ4K90VI2gqf
rHbUUJ58V3fATmYTbdNM0xbe4suBKD3Hciamd2dfONT/ejJPQ4N9hxYTRzU9WPl5
08diqN4PaBzWWajl0raiusD0TStkPf8hT5XCV3R7gaFcpH3dIUoWRRuQ1bRApyXz
7TdY2+sH6hhJbJw3aStJUXrJI2zaQDdc+EJ6/Qfbsc7mexn9RBc=
=huOD
-----END PGP SIGNATURE-----

PyOTA v2.0.2

11 Nov 02:27
ac6167d
Compare
Choose a tag to compare
  • [#96] find_transactions now omits null search terms from the request payload (thanks @yillkid for reporting!).

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.2
* [#96] `find_transactions` now omits null search terms from the request payload (thanks @yillkid for reporting!).

# Binary Distribution Checksums
* PyOTA-2.0.2-py2.py3-none-any.whl
    * sha256: 7671a7bbf311bb49dbb370b6a8581073c1d319c851bc084e652b0a3246d4b3c0
    * md5: 6317ecccad6bb1e35134689b6af1efea
* PyOTA-2.0.2.tar.gz
    * sha256: 09d05903bc17305f98b362fbd264a22503c4d145c24db3c6bd52bb9cd1dc1c32
    * md5: 57be821300eb4c373a98931d91dd2f78
-----BEGIN PGP SIGNATURE-----

iQIyBAEBCAAdFiEEc9vOP4UernObqSUWjIY/jl7U00MFAloGZTIACgkQjIY/jl7U
00NXVA/47FUOD0H4944gADXrK7BhgguKc8VBkuRoVzpZaZzMUANUaBnLQfPnaL14
MO3LVOg2LdHigEHHxctM1/MR3hb2ZmR4eskouxN70BDQubsnD2b93jAUJz283yrP
jVF5YerQ1z/7X4eZLMTESnRcHcWitDWkp2FSmHLGwjz3FFklreYZF7tZmFAiajlN
yQpTk+2G17B0hFQC32b5xSyZpJ3xb2gxx1PWlv5THqQOnYvoO0MjNCSqd/vP0ccc
blfDjiD8soP3mpe/mIwDMGFFijgpdSbhS+sjQX6qvS5xav+mCfD2x1o67+TvJIut
3RNYN7ddBOQN9pVJpby0zS7c2FJjfAEjOK8+jSxR/FtIdknTnPln4W+XImRKTR9p
jNqlnJ9cVKGlZ9G9w+ZuJFRE9/9yoSbbaQgSKR05rQ7oa6wVX7fdbsdqjrHleSxl
sm0qbMQQWmi6cnQEC2r1p7ORYqEGovifTfxV6kI9/LPYSBfrwSdurM90NtezsSSy
3bOqtxi5nnBTg0fGZAaD62HVEbCALQnQBbNCDqh4pHaRBs6O4ckJuC2rJM+I7ijB
kSb20M/T3Erp4G4lEf04ZVF3w+guTMxorl529jTPWNrziKv9Lr6iA+dja7t04IB5
YiczbnDt1bxHO9IKr8wIB4c9BrFIGm9VYRSecI4P004tGchFXg==
=RjdM
-----END PGP SIGNATURE-----

PyOTA v2.0.1

28 Oct 22:48
3c0cdf8
Compare
Choose a tag to compare

⚠️ This version contains a change that is not backwards-compatible with v2.0.0. Please review the Backwards-Incompatible Changes before updating! ⚠️

Backwards-Incompatible Changes

  • Moved iota.types.int_from_trits and iota.types.trits_from_int to new iota.trits module.
    • If you were previously importing these symbols from iota.types, you will need to update your imports:
      • Change from iota.types import int_from_trits to from iota import int_from_trits
      • Change from iota.types import trits_from_int to from iota import trits_from_int
    • If you were previously importing these symbols from iota, you do not have to make any changes.
  • #62 The trytes codec has been renamed to trytes_ascii.
    • The trytes codec will still work, but it generates a deprecation warning, and it will be removed in PyOTA v2.1.

New Functionality

  • #84 PyOTA is now compatible with IRI v1.4.1
    • Now adds X-IOTA-API-Version header to HTTP requests.
    • Adds support for preventing insecure bundle hashes.
  • #45 Creating a seed with more than 81 trytes now raises a warning (thanks @jinnerbichler!).
  • #72 Added Transfer alias for ProposedTransaction, to match naming convention of other IOTA API libraries (thanks @szepnapot!).
  • #83 More meaningful error message if setuptools version is too old to install PyOTA (thanks @HerrMuellerluedenscheid!).
  • #78 Partial documentation.

Bugfixes

  • #49 trits_from_int(0) now returns [0] by default.
  • Fixed incorrect PEP-484 type hints.

Thanks to the following individuals for their help with this release:

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.1

**⚠️ This version contains a change that is not backwards-compatible with v2.0.0.  Please review the Backwards-Incompatible Changes before updating! ⚠️**

## Backwards-Incompatible Changes
* Moved `iota.types.int_from_trits` and `iota.types.trits_from_int` to new `iota.trits` module.
    * If you were previously importing these symbols from `iota.types`, you will need to update your imports:
        * Change `from iota.types import int_from_trits` to `from iota import int_from_trits`
        * Change `from iota.types import trits_from_int` to `from iota import trits_from_int`
    * If you were previously importing these symbols from `iota`, you do not have to make any changes.
* #62 The `trytes` codec has been renamed to `trytes_ascii`.
    * The `trytes` codec will still work, but it generates a deprecation warning, and it will be removed in PyOTA v2.1.

## New Functionality
* #84 PyOTA is now compatible with IRI v1.4.1
    * Now adds `X-IOTA-API-Version` header to HTTP requests.
    * Adds support for preventing insecure bundle hashes.
* #45 Creating a seed with more than 81 trytes now raises a warning (thanks @jinnerbichler!).
* #72 Added `Transfer` alias for `ProposedTransaction`, to match naming convention of other IOTA API libraries (thanks @szepnapot!).
* #83 More meaningful error message if setuptools version is too old to install PyOTA (thanks @HerrMuellerluedenscheid!).
* #78 Partial documentation.
    * Documentation is uploaded to https://pyota.readthedocs.io/ automatically after each production release.
    * Documentation for the latest development version is available at https://pyota.readthedocs.io/en/develop/

## Bugfixes
* #49 `trits_from_int(0)` now returns `[0]` by default.
* Fixed incorrect PEP-484 type hints.

Thanks to the following individuals for their help with this release:

* @HerrMuellerluedenscheid
* @jinnerbichler
* @szepnapot
* @th0br0

## Binary Distribution Checksums
* PyOTA-2.0.1-py2.py3-none-any.whl
    * sha256: c20f90b82331a0ac369391b246025d5f9280b78de48cc0270b275f30703c3a08
    * md5: b2b0cb08fc5e3c01c43b79496e697871
* PyOTA-2.0.1.tar.gz
    * sha256: ff69a22cbea8392bf6c8f3317ad3c10dc96d1c0739bcac137ea8bf7e8decda5c
    * md5: bd6f92a126e2001b5e581a2659be5cdb
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEc9vOP4UernObqSUWjIY/jl7U00MFAln1CMUACgkQjIY/jl7U
00Nu4xAA01zL7O3XHSHIzjF0H6h7XVOSTr6rU1mNPJ+dDtV3qq3ObPBSOzd491mR
lLBoNNMRTjE+UKB6dFFukyNFsnRgPH9kuaXXXDO8q6eexSQngJWgygJnp3XywoLR
r+D3W8TBB+o7fpAfS/MFoD8UR7i8wdwRNL3T/5WAO+ZecdWrlMMdVlPVA/w49qyn
RR6zmZLZwcp8iObNife/HLG3ZtTFgyfGWPt+N+WijVWpGAElYm4r2U5xMEtI9lZX
hDz3kOPs1hzRX+63zAOxqYcET3IJaF4DlfcUbEtR34SBUdfBqAoJAz6k6vZzfQSX
bSMp49iMCLFsg4E+jkhb5UX3gm7MZaJaOCd1BRfi2NRaC1vBFGR0mkmmd05+BMBF
IWzmroHBGz9JA1uQzwKPKe5vUB5P5t5k7YUS5u7IIo6ktE3XNbMk4yyPm/nJo+9C
FGUvqPihekeToaN7NFJRzA09HZ+N3hgxH4wNIexjINwmkXJd0Oa4jZdvyiT14Poq
u7+lmjPCxzUGRXB4dXleGo6TPkAiT1OK27ZBLPk3gv9hATnEHvq4bou9ycYkDJXR
/oDMMIKry2V1rvDNXSN+0R9fxbUkb9EoMBacGyJ6cXpn4c6N0vnNxV2QenJCXe83
mVZspgJiH2jvxsVCext1MrVxUk4HRIVKKO1TIrMNwqtqi5Tk4Ik=
=bIc7
-----END PGP SIGNATURE-----

PyOTA v2.0.0

03 Oct 07:06
Compare
Choose a tag to compare

⚠️ This release contains several changes that are not backwards compatible with the previous version. Please review the Backwards-Incompatible Changes before upgrading! ⚠️

Backwards-Incompatible Changes

  • PyOTA now requires pip v9 or later.
    • If you are unable to install the latest version of PyOTA, run pip install --upgrade pip first.
  • [#39] PyOTA now requires requests 2.4.1 or later.
    • If you install PyOTA using pip, you do not need to do anything special; dependencies will be updated automatically when you run pip install --upgrade pyota.
    • If you install PyOTA by cloning the GitHub repo, you must re-run pip install . to install missing dependencies.
  • [#61] PyOTA now uses the new Kerl and Curl-P-81 algorithms.
    • This change introduces a dependency on the pysha3 library. See previous bullet point for installation instructions.
    • These changes are coordinated with the Tangle snapshot created on 21 August, 2017.
    • If your application maintains a local database of keys/addresses, you may need to regenerate them.
    • More information:
    • Thanks @alon-e for assistance with PyKerl implementation!
  • [#51] Removed address caches for security reasons.
  • Reversed the behavior of the head_to_tail parameter in Bundle.as_tryte_strings.
    • Previously, setting head_to_tail=True would return transactions in reverse order (and mutatis mutandis), which is incorrect. Now it returns the transactions in the correct order.
  • Digest now requires that its length be a multiple of 81 trytes.
  • Removed iota symlink at the top level of the package structure, renamed src to iota.
    • This only impacts developers who have cloned the repository; if you install PyOTA via pip, this will not affect you.

New Features

  • [#10] Implemented multisig support.
  • [#28] Added support for address security levels.
  • [#67] Added support for attachment timestamps (thanks @normpad!).
  • [#53] Reduced default min_weight_magnitude (thanks @johngrantuk!):
    • New mainnet value: 14
    • New testnet value: 9
  • [#18] Added convert_value_to_standard_unit (thanks @vynes!).
  • Installing via pip now automatically installs iota-cli app into env path.
    • This replaces examples/repl.py.
  • Added support for PyOTA-CCurl extension.
    This is an optional C extension that improves the performance of Curl-P-81 significantly (speedups of 60x are common).
    • Thanks @elk for making the extension compatible with Python 2!

Enhancements and Bugfixes

  • TryteString (and subclasses) now support creating new instances from unicode values. It is no longer necessary to convert values into byte strings first.
  • [#44] Seed.random now generates 81-tryte seeds by default.
    • Previously, it was generating 82-tryte seeds.
  • [#42] Transaction.from_tryte_string now accepts optional hash argument (thanks @alon-e for reporting!).
  • [#41] Fixed error when invoking help(api) in the REPL script.
  • Address.with_valid_checksum now also copies balance, key_index and security_level.
  • [#47] Added example script showing proof-of-concept for integrating with JS MAM library.
    • A Python implementation of MAM is coming; for now it is necessary to use the JS library.
  • [#63] Fixed conflict when importing PyOTA in a Django project (thanks @labovich!).
  • Improved PyCurl performance by ~7%.
  • Split out the transactions module into its own package.
    • Existing imports should still work; please file an issue on the PyOTA Issue Tracker if you notice any broken imports.
  • Made JSON representations of certain objects more comprehensive.
  • Added IPython repr integrations.
  • Improved documentation, fixed a few minor issues.
  • Fixed incorrect behavior of examples/address_generator.py (thanks @ivoscc!).
  • Fixed node URI in examples/sandbox.py.
  • [#34] Added example script demonstrating how to route PoW to local node (thanks @johngrantuk)!.
  • [#31] Added example script demonstrating how to send IOTAs to an address (thanks @johngrantuk!).
  • PyOTA now ships universal wheels.
  • Travis CI now only deploys tagged releases to PyPI.
    • After v2.0.0, master will only contain the latest production release of PyOTA.
  • Added contributor guide.
  • Removed unnecessary dependencies from Python 3 installs. If you use Python 3, you may uninstall the following libraries:
    • mock
    • typing

Huge thanks to @normpad and @alon-e for helping test the v2.0.0 beta and making sure it is stable for production release!

Additional thanks to the following individuals for contributing code and identifying issues during the development of PyOTA v2:

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.0
**⚠️ This release contains several changes that are not backwards compatible with the previous version.  Please review the Backwards-Incompatible Changes before upgrading! ⚠️**

## Backwards-Incompatible Changes
* PyOTA now requires pip v9 or later.
    * **If you are unable to install the latest version of PyOTA, run `pip install --upgrade pip` first.**
* [#39] PyOTA now requires `requests` 2.4.1 or later.
    * **If you install PyOTA using pip, you do not need to do anything special; dependencies will be updated automatically when you run `pip install --upgrade pyota`.**
    * **If you install PyOTA by cloning the GitHub repo, you must re-run `pip install .` to install missing dependencies.**
* [#61] PyOTA now uses the new Kerl and Curl-P-81 algorithms.
    * **This change introduces a dependency on the `pysha3` library.  See previous bullet point for installation instructions.**
    * These changes are coordinated with the Tangle snapshot created on 21 August, 2017.
    * **If your application maintains a local database of keys/addresses, you may need to regenerate them.**
    * More information:
        * https://forum.iota.org/t/snapshot-public-validation-22-09-2017/4256
    * Thanks @alon-e for assistance with PyKerl implementation!
* [#51] Removed address caches for security reasons.
* Reversed the behavior of the `head_to_tail` parameter in `Bundle.as_tryte_strings`.
    * Previously, setting `head_to_tail=True` would return transactions in reverse order (and mutatis mutandis), which is incorrect.  Now it returns the transactions in the correct order.
* `Digest` now requires that its length be a multiple of 81 trytes.
* Removed `iota` symlink at the top level of the package structure, renamed `src` to `iota`.
    * This only impacts developers who have cloned the repository; if you install PyOTA via pip, this will not affect you.

## New Features
* [#10] Implemented multisig support.
* [#28] Added support for address security levels.
* [#67] Added support for attachment timestamps (thanks @normpad!).
* [#53] Reduced default `min_weight_magnitude` (thanks @johngrantuk!):
    * New mainnet value: 14
    * New testnet value: 9
* [#18] Added `convert_value_to_standard_unit` (thanks @vynes!).
* Installing via pip now automatically installs `iota-cli` app into env path.
    * This replaces `examples/repl.py`.
* Added support for [PyOTA-CCurl extension](https://pypi.python.org/pypi/PyOTA-CCurl).
  This is an optional C extension that improves the performance of Curl-P-81 significantly (speedups of 60x are common).
    * Thanks @elk for making the extension compatible with Python 2!

## Enhancements and Bugfixes
* `TryteString` (and subclasses) now support creating new instances from unicode values.  It is no longer necessary to convert values into byte strings first.
* [#44] `Seed.random` now generates 81-tryte seeds by default.
    * Previously, it was generating 82-tryte seeds.
* [#42] `Transaction.from_tryte_string` now accepts optional `hash` argument (thanks @alon-e for reporting!).
* [#41] Fixed error when invoking `help(api)` in the REPL script.
* `Address.with_valid_checksum` now also copies `balance`, `key_index` and `security_level`.
* [#47] Added example script showing proof-of-concept for integrating with JS MAM library.
    * A Python implementation of MAM is coming; for now it is necessary to use the JS library.
* [#63] Fixed conflict when importing PyOTA in a Django project (thanks @labovich!).
* Improved PyCurl performance by ~7%.
* Split out the `transactions` module into its own package.
    * Existing imports should still work; please file an issue on the [PyOTA Issue Tracker](https://github.com/iotaledger/iota.lib.py/issues/) if you notice any broken imports.
* Made JSON representations of certain objects more comprehensive.
* Added IPython repr integrations.
* Improved documentation, fixed a few minor issues.
* Fixed incorrect behavior of `examples/address_generator.py` (thanks @ivoscc!).
* Fixed node URI in `examples/sandbox.py`.
* [#34] Added example script demonstrating how to route PoW to local node (thanks @johngrantuk)!.
* [#31] Added example script demonstrating how to send IOTAs to an address (thanks @johngrantuk!).
* PyOTA now ships universal wheels.
* Travis CI now only deploys tagged releases to PyPI.
    * After v2.0.0, `master` will only contain the latest production release of PyOTA.
* Added contributor guide.
* Removed unnecessary dependencies from Python 3 installs.  If you use Python 3, you may uninstall the following libraries:
    * `mock`
    * `typing`

Huge thanks to @normpad and @alon-e for helping test the v2.0.0 beta and making sure it is stable for production release!

Additional thanks to the following individuals for contributing code and identifying issues during the deve...
Read more

PyOTA v2.0.0b3

24 Sep 07:03
1fbbb87
Compare
Choose a tag to compare
PyOTA v2.0.0b3 Pre-release
Pre-release

PyOTA v2.0.0-beta3

⚠️ This is pre-release software! Do not use in production contexts! ⚠️

Release Notes (since v2.0.0b2)

If you are upgrading from PyOTA v1.1.3, please also review the release notes for v1.2.0-beta1, v2.0.0-beta1 and v2.0.0-beta2.

Bugfixes

  • Travis CI now publishes wheels to PyPI.

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.0-beta3
**⚠️ This is pre-release software! Do not use in production contexts! ⚠️**

## Release Notes (since v2.0.0b2)
**If you are upgrading from PyOTA v1.1.3, please also review the release notes for [v1.2.0-beta1](https://github.com/iotaledger/iota.lib.py/releases/tag/1.2.0b1), [v2.0.0-beta1](https://github.com/iotaledger/iota.lib.py/releases/tag/2.0.0b1) and [v2.0.0-beta2](https://github.com/iotaledger/iota.lib.py/releases/tag/2.0.0b1).**

### Bugfixes
* Travis CI now publishes wheels to PyPI.

# Binary Distribution Checksums
* PyOTA-2.0.0b3-py2.py3-none-any.whl
    * sha256: c3ef09fe522239514255e55283e2e6e965223f8e6d6b5fd171850a702ae43f1b
    * md5: 1475b0426d67894b3aaeb7050f2525c6
* PyOTA-2.0.0b3.tar.gz
    * sha256: 83b6bceb6d11aeb733dcc3b295aab8c97ce82b39760e6ef3615debaea0d87842
    * md5: db7c253f9b43abc6e1f38f0740a80d61
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZx1iPAAoJEIyGP45e1NNDuOgP/38j9G/hPaliEH5XrTBVNGj7
t2kHrnXxtFgy2eyOTFIny8axn4sDXsix+9N7FzVB8pp+lyn0LGurwDAfYdyUtJtf
lOiudjAWjJAtMFIKaNoHqysLysqpgo5RBc7b9+qXJSMAbLRE+37UiIdra00sps2w
TccboDuSosIBNzfXXu1x6jP5AY42Dm4ua3uhs9WYtrq8qZDBpHkczCfB/YEonTUI
Kd7bRUD4Ef9Y4iPMGenL2bs8C1cBhqAk6dL4wRKz2OLAA717s+kGAFavxC02Bcn6
qsB2suFkffbZnv6djg1Je/PYrY9xSDg7LEYeRGvIQqJVhgQ8DjQlgycBmMMIJK2A
7GBsU85ru4xo7uBhBn+XKyn382Bw6LJg86eQrxnEJr4P72zYRccjsRESI8oPpbRk
EAwJxnGBgEqGtN8z8Na0gDbECZsDhRs7zYv0dTuQ8a4ssuZP2O1zcRw9jO0onlBH
IyAdze5d6EC9FQ545ff3NiaOWVWYh6yqGgC/xmljhFkQyWjTsoJQs7T5LASP/pnq
dJcBGYojsvK7KokUPmfAfEXrt0Msyusyv/PmHquXePTbPZI8JfmMrn00SvrcKDPr
17l/v+UsSlU/bLAEezZj6w/yQuYUSfefnY5QKEp148OGmr06ZI4Yu3YkLqBipSCc
2VCoTzxu2hGPtBCfgvKC
=A9W5
-----END PGP SIGNATURE-----

PyOTA v2.0.0b2

24 Sep 06:51
86b6095
Compare
Choose a tag to compare
PyOTA v2.0.0b2 Pre-release
Pre-release

PyOTA v2.0.0b2

⚠️ This is pre-release software! Do not use in production contexts! ⚠️

Release Notes (since v2.0.0b1)

If you are upgrading from PyOTA v1.1.3, please also review the release notes for v1.2.0-beta1 and v2.0.0-beta1.

Bugfixes

  • Added missing support files to source distributions.
  • Fix an issue preventing Travis CI from publishing binary distros to PyPI.
  • Travis CI now only deploys tagged releases to PyPI.
    • After v2.0.0, master will only contain the latest production release of PyOTA.

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.0b2
**⚠️ This is pre-release software! Do not use in production contexts! ⚠️**

## Release Notes (since v2.0.0b1)
**If you are upgrading from PyOTA v1.1.3, please also review the release notes for [v1.2.0-beta1](https://github.com/iotaledger/iota.lib.py/releases/tag/1.2.0b1) and [v2.0.0-beta1](https://github.com/iotaledger/iota.lib.py/releases/tag/2.0.0b1).**

### Bugfixes
* Added missing support files to source distributions.
* Fix an issue preventing Travis CI from publishing binary distros to PyPI.
* Travis CI now only deploys tagged releases to PyPI.
    * After v2.0.0, `master` will only contain the latest production release of PyOTA.

# Binary Distribution Checksums
* PyOTA-2.0.0b2-py2.py3-none-any.whl
    * sha256: 2726bfef88a137c8ec845820baa334fcda4b01257de8234d6e69e21d07ec6446
    * md5: f3381187ac6745fd6d582b7610ee0b48
* PyOTA-2.0.0b2.tar.gz
    * sha256: 10e48899410b1df7084bb9d80055bf1d52777672ee37f0fdfa961276a4e600d1
    * md5: f3bbfe56ff5bc84c3f86a11e24f4b7be
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZx1UqAAoJEIyGP45e1NND09QP/jwIf53zvlarrp850FzeQeYw
38+M8msmY4Q0qfJGFd/qlh7K8b8mecvHM5dyI4MUZhqwRziWaAvKxVBNRYmtzvWc
jz50Is9GPnKTamVNj9IUd3D0ofTK8dBuvaXcEbDeN45QxIiwhBQX9s75U4G/oKVF
9kZGyu/zB8a+cBb509BS8lePQn40K1AVJNdwO8Y2InInbiagESzvWC7DOqu7t7/i
K2kDFOngAf8C/ahxdtZ6x59GfNHs/iR9NIhogX5X97O9AdeUUGzNWoC3u/FqWZcD
QitH0xSfiqh0Q034KLqlh31xysL62m3x+TEiajAHhhrgcVLqaPPTlNdZo1+xUKBl
i/VZtIomaXA2iQ8n1oIKgdJPGAl8t2PRfwz0UGU6wkroMdl59kRZIRwkXnxKdziZ
VM/9xtvPFVGK7z/cg20C5C4rJcMoCH4R/gozmvAS1bYHi3XDmYhuFT0bJ5OMFKj9
wJ0NfFg25NxTdCNfp3/E4psapcO45WXI74KzpZ60ZH6RMbcD1LgI5aExZGogMDIY
BosCDRdZ5sWcvrS6MJ0SsE7DZ7r8iLGwVwOjc5kVAETpu5RHgurPAz8Q6qdMZ+Xj
PgGiFX3+ti1hqw6VnQfVa4NdDYRcaKG3bnLMbaVEesCTm8tcKSbwzqNsar52B3uW
IljJFIPv8HPDXzZWKL+n
=auwq
-----END PGP SIGNATURE-----

PyOTA v2.0.0b1

24 Sep 06:31
Compare
Choose a tag to compare
PyOTA v2.0.0b1 Pre-release
Pre-release

PyOTA v2.0.0-beta1

⚠️ This is pre-release software! Do not use in production contexts! ⚠️

⚠️ This release contains several changes that are not backwards compatible with PyOTA v1.x. Please review the Backwards-Incompatible Changes before upgrading! ⚠️

Release Notes (since v1.2.0b1)

If you are upgrading from PyOTA v1.1.3, please also review the release notes for v1.2.0-beta1.

Backwards-Incompatible Changes

  • PyOTA now requires pip v9 or later.
    • If you are unable to install the latest version of PyOTA, run pip install --upgrade pip first.
  • PyOTA now depends on the pysha3 library.
    • If you install PyOTA using pip, you do not need to do anything special.
    • If you install PyOTA by cloning the GitHub repo, you must re-run pip install . to install missing dependencies.
  • [#61] PyOTA now uses the new Kerl and Curl-P-81 algorithms.

New Features

  • [#53] Reduced default min_weight_magnitude (thanks @johngrantuk!):
    • New mainnet value: 14
    • New testnet value: 9
  • Removed unnecessary dependencies from Python 3 installs.
    • If you use Python 3, you may uninstall the following libraries:
      • mock
      • typing

Bugfixes

  • [#63] Fixed conflict when importing PyOTA in a Django project (thanks @labovich!).

Misc

  • [#34] Added example script demonstrating how to route PoW to local node (thanks @johngrantuk)!.
  • [#31] Added example script demonstrating how to send IOTAs to an address (thanks @johngrantuk!).
  • PyOTA now ships separate wheels for Python 2 and Python 3.
  • Fixed incorrect PEP-484 type hints.
  • Improved docstrings and comments.

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v2.0.0-beta1
**⚠️ This is pre-release software! Do not use in production contexts! ⚠️**

**⚠️ This release contains several changes that are not backwards compatible with PyOTA v1.x. Please review the Backwards-Incompatible Changes before upgrading! ⚠️**

## Release Notes (since v1.2.0b1)
**If you are upgrading from PyOTA v1.1.3, please also review the [release notes for v1.2.0-beta1](https://github.com/iotaledger/iota.lib.py/releases/tag/1.2.0b1).**

### Backwards-Incompatible Changes
* PyOTA now requires pip v9 or later.
    * **If you are unable to install the latest version of PyOTA, run `pip install --upgrade pip` first.**
* PyOTA now depends on the `pysha3` library.
    * **If you install PyOTA using pip, you do not need to do anything special.**
    * **If you install PyOTA by cloning the GitHub repo, you must re-run `pip install .` to install missing dependencies.**
* [#61] PyOTA now uses the new Kerl and Curl-P-81 algorithms.
    * These changes are coordinated with the Tangle snapshot created on 21 August, 2017.
    * **If your application maintains a local database of keys/addresses, you may need to regenerate them.**
    * More information:
        * https://forum.iota.org/t/snapshot-public-validation-22-09-2017/4256
    * Thanks @alon-e for assistance with PyKerl implementation!

### New Features
* [#53] Reduced default `min_weight_magnitude` (thanks @johngrantuk!):
    * New mainnet value: 14
    * New testnet value: 9
* Removed unnecessary dependencies from Python 3 installs.
    * If you use Python 3, you may uninstall the following libraries:
        * `mock`
        * `typing`

### Bugfixes
* [#63] Fixed conflict when importing PyOTA in a Django project (thanks @labovich!).

## Misc
* [#34] Added example script demonstrating how to route PoW to local node (thanks @johngrantuk)!.
* [#31] Added example script demonstrating how to send IOTAs to an address (thanks @johngrantuk!).
* PyOTA now ships universal wheels.
* Fixed incorrect PEP-484 type hints.
* Improved docstrings and comments.

# Binary Distribution Checksums
* PyOTA-2.0.0b1-py2.py3-none-any.whl
    * sha256: 31683a7c95abf553992b16cfee07f6e6e0808860aa01e7d9e0fe5e102cb5e419
    * md5: 508cbc06213aadc335776ddf2e4b0776
* PyOTA-2.0.0b1.tar.gz
    * sha256: 0ccf5af9c502d5286d1ecca04a7468232a0ec6fb04adab5099d998018e1592b2
    * md5: c7067e5193a338091dca1a3fea734851
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZx1E3AAoJEIyGP45e1NNDG5sQAJXzJXsmySkTF9vvJDsK0X/m
lPCxIrjjc+MmSgI2/N+vmvFZpa3kOKTOqqBfd/dgwOWFaOyDrr4WrMujkoduHBpR
jqdMbqDrsurih5uQZ3LifOqQSBZSAIPBFn6zxR4ZHDEXcoJ3JPIPIH34Ts556SQS
U/B+aEmZuQ2C2eApkX84Z450W8PAulfbJDpZstr/mDzRCp7N3/EFXeESU1dU80Sp
i9Is9SDzskLsjEGMRDu2D9OyJgybFJajqKDUg2dvWXuDkJpnYGm8bygDKVdZn8PF
dTAH3JxV/JBps20a/UmGsi6InAmKef4jYW8j946ObDnYLjoRVP/v04VD3BdQED8R
SwUbB/9iX+3DDJjKXS68+MDN5gOSlWiP1h4b3uBkmySILJDHQN2UvmNJk7O5F5Zu
Y8Mp4wqRK+oeErVMS6M8dY6e6AOYcdVb4+7agE245m1szmAKvv90PzSCSMB2wrwr
T1Vr/0y7ri0kWexsQWCp2eWErX5Ftdx+2wptp9GWmoK7NDtcN1tRyvzAU6I/MCBx
F6i6NqLqOYZlfL/krebnx+QttTjW2pJPIDtQgZm++ECzhNoDyDICy+jKPuW9SDgy
hIjyenOdTTahOU5q1CGxNVqJcEp3bw3sBxJwhhnfc2Du2Tc60Yo8dx8tFpegYCi3
Jq0SdAigTJpEFGLFOkZY
=aJCi
-----END PGP SIGNATURE-----

1.2.0b1

16 Jul 01:26
Compare
Choose a tag to compare
1.2.0b1 Pre-release
Pre-release

PyOTA v1.2.0-beta1

⚠️ This is pre-release software! Do not use in production contexts! ⚠️

⚠️ This release contains several changes that are not backwards compatible with the previous version. Please review the Backwards-Incompatible Changes before upgrading! ⚠️

Backwards-Incompatible Changes

  • [#51] Removed address caches.
  • [#39] PyOTA now requires requests 2.4.1 or later.
  • Reversed the behavior of the head_to_tail parameter in Bundle.as_tryte_strings.
    • Previously, setting head_to_tail=True would return transactions in reverse order (and mutatis mutandis), which is incorrect. Now it returns the transactions in the correct order.
  • Digest now requires that its length be a multiple of 81 trytes.
  • Removed iota symlink at the top level of the package structure, renamed src to iota.
    • This only impacts developers who have cloned the repository; if you install PyOTA via pip, this will not affect you.

New Features

  • [#10] Implemented multisig support.
  • [#28] Added support for address security levels.
  • [#18] Added convert_value_to_standard_unit (thanks @vynes!).
  • Installing via pip now automatically installs iota-cli app into env path.
    • This replaces examples/repl.py.
  • Added support for pyota-ccurl extension (Python 3 only, for the moment).

Enhancements and Bugfixes

  • TryteString (and subclasses) now support creating new instances from unicode values.
    • It is no longer necessary to convert values into byte strings first.
  • [#44] Seed.random now generates 81-tryte seeds by default.
    • Previously, it was generating 82-tryte seeds.
  • [#42] Transaction.from_tryte_string now accepts optional hash argument (thanks @alon-e for reporting!).
  • [#41] Fixed error when invoking help(api) in the REPL script.
  • Address.with_valid_checksum now also copies balance, key_index and security_level.
  • No longer installs unnecessary dependencies on Python 3.
    • If you are using Python 3, you may uninstall the typing and mock libraries.
  • [#47] Added example script showing proof-of-concept for integrating with JS MAM library.
    • A Python implementation of MAM is coming; for now it is necessary to use the JS library.
  • Improved PyCurl performance by ~7%.
  • Split out the transactions module into its own package.
    • Existing imports should still work; please file an issue on the PyOTA Issue Tracker if you notice any broken imports.
  • Made JSON representations of certain objects more comprehensive.
  • Added IPython repr integrations.
  • Improved documentation, fixed a few minor issues.
  • Fixed incorrect behavior of examples/address_generator.py (thanks @ivoscc!).
  • Fixed node URI in examples/sandbox.py.
  • Added contributor guide.

Signature/Checksums

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# PyOTA v1.2.0-beta1

**⚠️ This is pre-release software!  Do not use in production contexts! ⚠️**

**⚠️ This release contains several changes that are not backwards compatible with the previous version.  Please review the Backwards-Incompatible Changes before upgrading! ⚠️**

## Backwards-Incompatible Changes
* [#51] Removed address caches.
* [#39] PyOTA now requires `requests` 2.4.1 or later.
* Reversed the behavior of the `head_to_tail` parameter in `Bundle.as_tryte_strings`.
    * Previously, setting `head_to_tail=True` would return transactions in reverse order (and mutatis mutandis), which is incorrect.  Now it returns the transactions in the correct order.
* `Digest` now requires that its length be a multiple of 81 trytes.
* Removed `iota` symlink at the top level of the package structure, renamed `src` to `iota`.
    * This only impacts developers who have cloned the repository; if you install PyOTA via pip, this will not affect you.

## New Features
* [#10] Implemented multisig support.
* [#28] Added support for address security levels.
* [#18] Added `convert_value_to_standard_unit` (thanks @vynes!).
* Installing via pip now automatically installs `iota-cli` app into env path.
    * This replaces `examples/repl.py`.
* Added support for `pyota-ccurl` extension (Python 3 only, for the moment).

## Enhancements and Bugfixes
* `TryteString` (and subclasses) now support creating new instances from unicode values.
    * It is no longer necessary to convert values into byte strings first.
* [#44] `Seed.random` now generates 81-tryte seeds by default.
    * Previously, it was generating 82-tryte seeds.
* [#42] `Transaction.from_tryte_string` now accepts optional `hash` argument (thanks @alon-e for reporting!).
* [#41] Fixed error when invoking `help(api)` in the REPL script.
* `Address.with_valid_checksum` now also copies `balance`, `key_index` and `security_level`.
* No longer installs unnecessary dependencies on Python 3.
    * If you are using Python 3, you may uninstall the `typing` and `mock` libraries.
* [#47] Added example script showing proof-of-concept for integrating with JS MAM library.
    * A Python implementation of MAM is coming; for now it is necessary to use the JS library.
* Improved PyCurl performance by ~7%.
* Split out the `transactions` module into its own package.
    * Existing imports should still work; please file an issue on the [PyOTA Issue Tracker](https://github.com/iotaledger/iota.lib.py/issues/) if you notice any broken imports.
* Made JSON representations of certain objects more comprehensive.
* Added IPython repr integrations.
* Improved documentation, fixed a few minor issues.
* Fixed incorrect behavior of `examples/address_generator.py` (thanks @ivoscc!).
* Fixed node URI in `examples/sandbox.py`.
* Added contributor guide.

# Binary Distribution Checksums
* PyOTA-1.2.0b1-py2-none-any.whl
    * sha256: 233a89612552dbb834582b001d491a61fe6573b149e50913cd40285b5145d224
    * md5: 3f2920b3af10523d84a84ae1e5347297
* PyOTA-1.2.0b1-py3-none-any.whl
    * sha256: 1b0e0678bdcf804b513e3655f4f632c0123e5bc3dd4d95e18faf52ab71916aa1
    * md5: 254538835ace1f31f22fdd580217b76e
* PyOTA-1.2.0b1.tar.gz
    * sha256: e21c1f4ba03a7d1a2c458990b58d3a796f5bc22315e8d6338ff1879c38c92327
    * md5: f1543aa86a42e205f2dfa72100f585de
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZasB4AAoJEIyGP45e1NNDu1YP/0K3XlqlYMlHCiQjBahdJ1es
LQDKveNBni3rQHjk7QwNv+kUHmeU5aFJjlE+AR8PgmPo2ax8OFdvgwD7VrV0f2uP
Eqan067kT6dkcVeGfZo3n4St4R2PoDRhxXeUTKGCIule3Kq337WuF4m65QaTK8pV
PXn0ytuQZzOBIcqaikU40m1KmuSWzKba9Rm8mK4Cf9C1s+Wfe9+TSIbpr3/SSLJz
YwP5wJkWMI+dv/CmXO3VEpeqHiuFAoAT7KdjhJ4XwmEAA1ZtjrUa5F4aauhTLhm9
GoP744Ti4GgThP9DstyXG/EPEm+I1HG5fGXsWUPmlUCRaH/jZZHMX0hJFJcpdl5K
6qYggLEJ+6EA7oSFrJ/GEEIbBmS5pCckxT9B8vCddzrt1Oq4ydHdioXtmb9XtqUv
9g/sPkf1ejxF1EZWDPnOi89DsjW8p2RuNshaEWUCO8faziX9dwwGzEY88ffyNvPb
/pK8fh44YWZDV55mnEGNfz9uBVYl2Ui2NtUffRyo+1AVMrsRwOoH9BtUVAPjKCKA
pR8x3KcbR2WLRakK1EHIMB6LJHdEzKaZ8RcjFspEEJntzW0cYzcfwMsDtkOQTSu5
heFnHPrydxW3xl9yOwVKqeGXMqRT888J3ns7wh0uL478xnPpRdKjxlcwlcGCQuOX
kWLwFEp2IRUM4tjkb0s8
=YgJ7
-----END PGP SIGNATURE-----