1. 10 Nov, 2021 1 commit
    • Julien Prigent's avatar
      [PyPi] Missing files · 100a711b
      Julien Prigent authored
      The HaClient is missing from the PyPi package:
      
      ```
      [/tmp]> curl https://codeload.github.com/FreeOpcUa/opcua-asyncio/tar.gz/refs/tags/v0.9.91 -s -o v0.9.91.tar.gz
      [/tmp]> tar xvf v0.9.91.tar.gz > /dev/null 2>&1
      [/tmp]> cd opcua-asyncio-0.9.91/
      [/tmp/opcua-asyncio-0.9.91]> python setup.py install > /dev/null 2>&1
      [/tmp/opcua-asyncio-0.9.91]> find build/ -type f |grep -i ha
      build//lib/tests/test_ha_client.py
      build//lib/asyncua/ua/uaprotocol_hand.py
      ```
      
      The build rules only look for the packages via
      (`find_packages`) in setup.py, making the ha client sub-directory a
      package fixes it:
      ```
      [/tmp/opcua-asyncio-0.9.91]> rm -rf build/
      [/tmp/opcua-asyncio-0.9.91]> cat asyncua/client/ha/__init__.py
      """
      Pure Python OPC-UA library
      """
      
      from .ha_client import HaClient, HaMode, HaSecurityConfig, ConnectionStatesing
      [/tmp/opcua-asyncio-0.9.91]> python setup.py build > /dev/null 2>&1
      [/tmp/opcua-asyncio-0.9.91]> find build/ -type f |grep -i ha
      build//lib/tests/test_ha_client.py
      build//lib/asyncua/ua/uaprotocol_hand.py
      build//lib/asyncua/client/ha/__init__.py
      build//lib/asyncua/client/ha/common.py
      build//lib/asyncua/client/ha/ha_client.py
      build//lib/asyncua/client/ha/reconciliator.py
      build//lib/asyncua/client/ha/virtual_subscription.py
      ```
      
      Changing the HaClient test import path to ensure no regression.
      100a711b
  2. 05 Nov, 2021 11 commits
  3. 03 Nov, 2021 2 commits
    • oroulet's avatar
      new release v0.9.91 · 6b0c12d8
      oroulet authored
      6b0c12d8
    • Curious Crook's avatar
      Add client low-level file system functionality (#696) · f57477ae
      Curious Crook authored
      * Add low-level file system functionality
      
      * Added examples for the use of ua_file_transfer.py
      
      In the following you will find examples for the use of the
      classes UaFile and UaDirectory and how to handle typical uaerrors.
      see: ./asyncua/client/ua_file_transfer.py.
      
      The OPC UA File Transfer specification can be found here:
      https://reference.opcfoundation.org/Core/docs/Part5/C.1/
      
      * pylint optimized - ua_file_transfer.py 
      
      pylint optimization of file ua_file_transfer.py.
      => Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
      
      * pylint optimized - client_ua_file_transfer.py
      
      pylint optimization of client_ua_file_transfer.py.
      => Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
      Co-authored-by: default avatarCurious Crook <privat@nowhere.org>
      f57477ae
  4. 01 Nov, 2021 1 commit
  5. 31 Oct, 2021 1 commit
  6. 26 Oct, 2021 2 commits
  7. 25 Oct, 2021 4 commits
  8. 09 Oct, 2021 2 commits
  9. 07 Oct, 2021 14 commits
  10. 05 Oct, 2021 1 commit
    • Marko Kohtala's avatar
      Add missing await in uals -l -d · dd351f57
      Marko Kohtala authored
      Running uals recursively with -l option gives RuntimeWarning:
      
      ```
      $ uals -d 3 -l
      Browsing node i=84 at opc.tcp://localhost:4840
      
      DisplayName                    NodeId                    BrowseName                DataType   Timestamp                      Value
      
      Traceback (most recent call last):
        File ".../opcua-asyncio/tools/uals", line 11, in <module>
          uals()
        File ".../opcua-asyncio/asyncua/tools.py", line 342, in uals
          asyncio.run(_uals())
        File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
          return loop.run_until_complete(main)
        File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
          return future.result()
        File ".../opcua-asyncio/asyncua/tools.py", line 368, in _uals
          await _lsprint_long(node, args.depth - 1)
        File ".../opcua-asyncio/asyncua/tools.py", line 442, in _lsprint_long
          name, bname, nclass, mask, umask, dtype, val = [attr.Value.Value for attr in attrs]
      TypeError: 'coroutine' object is not iterable
      sys:1: RuntimeWarning: coroutine 'Node.read_attributes' was never awaited
      ```
      dd351f57
  11. 03 Oct, 2021 1 commit
    • Alexander Schrode's avatar
      Support OptionSets · b19881b9
      Alexander Schrode authored
      Support OptionSets from Part5 7.17 like UadpNetworkMessageContentMask. In nodesets they are UAEnumerations with attribut "IsOptionSet" = True
      b19881b9