{"push_id":1704463198,"size":2,"distinct_size":0,"ref":"refs/heads/upstream/master","head":"e5ce87f25fd42fdc3bbeab98a1ea1c673e88cdcb","before":"4e2246a83b6b20d87695377c923ef62f20da0708","commits":[{"sha":"3b3d18702a78ad18c6be1430428079d010f32a84","author":{"name":"Christian Tremblay","email":"6561f29de41acdcde8d247777b114211ce2ded8c@bachand-tremblay.com"},"message":"Release 0.91 (#33)\n\n* client.http.base: Send Content-Length as a string.\r\n\r\n`requests` tries to do a regex match or similar on the values of\r\nheaders, and this requires the input to be a string.  It barfs when you\r\ngive it an `int`.\r\n\r\n* client.ops.vendor.widesky: Fix typo in create entity operation.\r\n\r\n* client.ops.entity: Add loggers, handle empty grid.\r\n\r\n* client.ops.his: Handle write of empty series.\r\n\r\n* client.ops.his: Handle no columns in write_his_frame.\r\n\r\n* WC-241: revive multi-hist mixin.\r\n\r\n* WC-241: initialize timestamp column for write grid\r\n\r\n* WC-241: Added a simple application that uses the pyhaystack library\r\n\r\nEdit by Stuart Longland <stuartl@vrt.com.au>: Removal of default\r\ncredentials!\r\n\r\n* WC-237: Re-locate manual mutli-his-read-write test script.\r\n\r\nManually run test scripts can go under tests/manual, until such time as\r\nthey get automated.\r\n\r\n* WC-237: client.session: Add storage for grid cache.\r\n\r\nSome grids are unlikely to change in the course of a session.  Examples\r\nof these are the 'about', 'formats' and 'ops' grids, which indicate the\r\nfeatures that the Haystack server supports.  We should cache these for a\r\nlimited period of time so that the results can be used for enabling\r\nfeatures depending on server version.\r\n\r\n* WC-237: client.ops.grid: Implement cache support\r\n\r\n* WC-237: client.session: Enable caching for about, ops, formats.\r\n\r\n* WC-237: client.mixins: Remove defunct classes from __init__\r\n\r\n* WC-237: client.session: Fix typos\r\n\r\n* WC-237: client.session: Add \"has_feature\" operation.\r\n\r\nUsed to detect extension features in the Haystack server.  Some servers\r\nimplement extension featurs that the standard Haystack API makes\r\ndifficult to expose.\r\n\r\nSometimes a feature is a \"new\" feature in a particular release of a\r\nserver, as such, it should be disabled if the version is found to be\r\nbelow a certain threshold.  (e.g. multi-point hisRead/hisWrite is\r\nsupported in WideSky v0.5.0 but not earlier)\r\n\r\nThis allows a run-time check to take place in the relevant state\r\nmachines to decide how to tackle the problem.\r\n\r\n* WC-237: client.ops.feature: Add HasFeatureOperation base implementation.\r\n\r\n* WC-237: client.ops.feature: Fix some state machine bugs, typos.\r\n\r\n* WC-237: client.session: Use base class for HasFeaturesOperation\r\n\r\n* WC-237: client.ops.vendor.widesky: Add detection of WideSky extensions\r\n\r\n* WC-237: client.widesky: Enable detection of WideSky extensions\r\n\r\n* WC-237: client.ops.his: Probe multi-point hisRead\r\n\r\n* WC-237: client.ops.his: Implement probing of multi-hisWrite\r\n\r\n* WC-237: Pull in semver for WideSky version checking\r\n\r\n* WC-237: client.ops.his: Fix multi-point hisRead/hisWrite issues.\r\n\r\n* client.http.dummy: Dummy HTTP Client/Server\r\n\r\nThis is a \"HTTP Server\" class and matching \"Client\" that we can drive\r\nlike a puppet for writing test cases.\r\n\r\n* tests: Bring test case for 'about' method.\r\n\r\n* client.http.base: Handle 'str' input on Python3.\r\n\r\nIf we're given an 'str', we might safely assume that the body is in fact\r\ndecoded already.\r\n\r\n* tests.util: Add some utility functions\r\n\r\n* tests.client.test_base: Check output of about()\r\n\r\n* tests.client.test_base: Add ops test\r\n\r\n* tests.client.test_base: Add formats() test\r\n\r\n* tests.client.test_base: More tests for read by ID, etc.\r\n\r\n* Bugfix: Handle missing entities in multi-entity read requests (#26)\r\n\r\n* WC-366: client.ops.entity: Handle missing entities in read response.\r\n\r\nIf an entity does not exist, and we are requesting more than one, the\r\nmissing entity appears in the grid as a row of nulls:\r\n\r\n    DEBUG:pyhaystack.client.WideskyHaystackSession.get_entity:Received grid: <Grid>\r\n        Columns:\r\n            id\r\n            dis\r\n            status\r\n            user\r\n        Row    0: id=Ref(u'test_user4', u'test_user4', True), dis=u'Test User4', status=u'inactive', user=MARKER\r\n        Row    1: id=None, dis=None, status=None, user=None\r\n        Row    2: id=Ref(u'test_user2', u'test_user2', True), dis=u'Test User2', status=u'inactive', user=MARKER\r\n        Row    3: id=Ref(u'test_user3', u'test_user3', True), dis=u'Test User3', status=u'inactive', user=MARKER\r\n    </Grid>\r\n\r\nwhich then results in this exception:\r\n\r\n      File \"pyhaystack/client/ops/entity.py\", line 51, in _on_read\r\n        entity_id = row.pop('id').name  # Should be a Ref\r\n    AttributeError: 'NoneType' object has no attribute 'name'\r\n\r\nWe should skip rows that have a null 'id'.\r\n\r\n* WC-366: client entity tests: Test retrieval of entities by id.\r\n\r\n* WC-366: client entity tests: Python 3 support\r\n\r\n* Changed version to 0.91\r\n\r\nSigned-off-by: Christian Tremblay <christian.tremblay@servisys.com>","distinct":false,"url":"https://api.github.com/repos/vrtsystems/pyhaystack/commits/3b3d18702a78ad18c6be1430428079d010f32a84"},{"sha":"e5ce87f25fd42fdc3bbeab98a1ea1c673e88cdcb","author":{"name":"Christian Tremblay","email":"71694b99eea06199a845e8ff0be0bb7d7c0ba3cc@servisys.com"},"message":"Dumb error in pushing to pypi\nincresing version to 0.91.1\n\nSigned-off-by: Christian Tremblay <christian.tremblay@servisys.com>","distinct":false,"url":"https://api.github.com/repos/vrtsystems/pyhaystack/commits/e5ce87f25fd42fdc3bbeab98a1ea1c673e88cdcb"}]}
{"actor":{"display_login":"sjlongland"}}