1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533
|
PyVISA Changelog
================
1.14.1 (22-11-2023)
-------------------
- fix handling of missing board number for VICP resources PR #787
1.14.0 (13-11-2023)
-------------------
- fix ctypes truncated pointers on 64-bit for ViBusAddress, ViBusSize, ViAttrState PR #725
- fix read_termination_context does not allow None PR #727
- replace `bitness` for library and python runtime information with instruction set
and bitness #733
Resulting API changes:
- `pyvisa.util.LibraryPath.arch` now returns a list of `pyvisa.util.ArchitectureType`
enum values representing architectures the binary was compiled for
- `p.u.LibraryPath.is_32bit`, `p.u.LibraryPath.is_64bit`, and `p.u.LibraryPath.bitness`
have been removed
- `p.u.get_shared_library_arch` now returns `p.u.PEMachineType` instead of a string
- `p.u.get_arch` now returns a list of `p.u.ArchitectureType`
- update `Resource` context manager type annotation to preserve derived type PR #740
- added support for using custom simulation files when using the `sim` backend
with `pyvisa-shell`. PR #774
1.13.0 (22-12-2022)
-------------------
- add official support for Python 3.11 and drop support for Python 3.7
- add support for VICP resource names PR #699
NOTE: the interface type enum value for VICP is unknown. No documentation was
found and tests using the VICP passport were not conclusive. If somebody figures
out the right value it would be great
- numerous bug fixes related to VISA attributes PR #697
This included fixing several typos, uncommenting the
AttrVI_ATTR_INTF_PARENT_NUM class, and adding in the
AttrVI_ATTR_RM_SESSION class,
1.12.0 (11-05-2022)
-------------------
- remove deprecated feature planned for removal PR #600
This include the visa.py module. `
import visa` should be replaced by `import pyvisa as visa` and usage of
`python -m visa info` by `pyvisa-info` and `python -m visa shell` by `pyvisa-shell`
- optimize write_binary_values when passing in bytes, bytearray or numpy arrays PR #668
We avoid going through the struct module which can cause large memory overheads.
- fix collection of debug info on the ctypes wrapper PR #598
- allow an IEEE binary block or an HP block to be empty PR #581
This is more correct and can affect real instruments. However this introduces
a minor backward incompatibility when parsing IEEE header. The data length for
#0 is now reported to be -1 instead of 0 since 0 corresponds to #10.
This changes should affect a minority of user and does not change the behavior for
instrument returning #0 (only the value of data_length as returned by
parse_ieee_block_header is affected and functions using it have been adapted).
- allow trailing separators in ascii blocks PR #581
Numpy style extraction already handled this case correctly but it was not so
for the builtin parser.
- adding open_resource attribute check for VisaLibraryBase in order to support
custom resource opening #660
- changed constant ControlFlow enum type from IntEnum to IntFlag PR#652
This change also triggers a change in attributes.py to include a new Attribute
class, FlagAttribute where the enum type is declared at IntFlag.
Class AttrVI_ATTR_ASRL_FLOW_CNTRL now inherits from FlagAttribute.
Flow control attribute per ivi foundation definition is a flag and
multiple flow control types can be set.
- move all setup metadata to pyproject.toml PR #600
- remove duplicate call to the command loop after running pyvisa-shell PR #687
1.11.3 (07-11-2020)
-------------------
1.11.2 was skipped due to an issue in the MANIFEST file.
- fix MANIFEST to exclude built docs
- fix minor typos in deprecation warning for GPIB resources
- generate some test files on the fly to avoid issue when building conda packages
- add official Python 3.9 support
1.11.1 (30-09-2020)
-------------------
- deprecate methods that were mistakenly added to GPIB::INSTR resources PR #560
- fix the listing of available backends (Also not that we now return the backend
name as can be used to create a ResourceManger) PR #545
- allow a None value for the board value of a ResourceInfo PR #547
This allows for funky resource name such ASRL/dev/tty0::INSTR which are common
in pyvisa-py and avoid returning a completely generic resource in those cases.
- documentation improvements for pyvisa.resources.SerialInstrument PR #558
1.11 (16-09-2020)
-----------------
PyVISA 1.11 introduces a small backward incompatibility in the handling of
the arguments to handlers for VISA events. The old system was tightly linked to
the ctwrapper and not really usable as it was. As a consequence we pass
the contents of the ctypes objects to the handler rather than the bare ctypes
object (with the exception of the user handle for which there is no way to do
it properly). This is a breaking change and if your code is affected you can revert
to the old behavior by setting the environment variable PYVISA_WRAP_HANDLER=0 or
set ctwrapper.WRAP_HANDLER to False but please consider updating to the new
behavior.
PyVISA 1.11 also removes deprecated functions and attributes that were supposed
to be removed in 1.10:
- `ask`: use `query` instead
- `ask_delay`: use `query_delay`
- `ask_for_values`: use either `query_ascii_values` or `query_binary_values` as relevant
- `write_values`: use either `write_ascii_values` or `write_binary_values` as relevant
- `read_values`: use either `read_ascii_values` or `read_binary_values` as relevant
- `query_values`: use either `query_ascii_values` or `query_binary_values` as relevant
- `values_format`: has no equivalent simply pass the proper argument to either
the ascii or binary variant of the function (`read_xxxx_values`, `write_xxxx_values`,
`query_xxxx_values`)
- Add support for "s" and "p" binary format which can be used to retrieve binary files
from instruments. PR #536
- Convert the testsuite to use pytest PR #531
This is motivated by the possibility to re-use it in PyVISA-py. However since
unittest use inheritance to detect tests, doing so would have been clunky, pytest
name base detection works better for that purpose.
- Setup Azure pipelines for self-hosted runner using Keysight tools to run an
extended set of tests. PR #531
- Introduce an enumeration for special VISA timeout values PR #531
- Provide VisaLibraryBase.handle_return_value to ease the handling of return values
in alternative backends PR #525
- Transition to using dataclasses for resource name PR #525
This is NOT fully backward compatible if you used to index the resource name
- Allow alternative backends to use an _ instead of a - in their name PR #525
- Add Event class to provide a nice interface to VISA events PR #511
- Add `wrap_handler` to provide a nicer way to write event handler PR #511
- Add wrapper classes for events PR #511
- Add typing to the entire codebase PR #511
- Use black and isort on the code to homogenize style PR #511
- Convert docstrings to use numpy formatting PR #511
- Explicitly set attributes on resources to make the code more readable PR #511
- Make MessageBasedResource.read_bytes break on message end when
`break_on_termchar` is True PR #511
- Add support for dll_extra_paths in .pyvisarc to provide a way to specify paths
in which to look for dll on Windows and Python >= 3.8 PR #509
- Drop Python 2 support PR #486
- Limit support to Python 3.6+ PR #486
- Improve the test suite and introduce tests relying on Keysight Virtual
instrument software PR #486
- Add badges to the README PR #486
- Improve ResourceManager.list_opened_resource to list only open resources.
Previously all resources created and not yet garbage collected were listed. PR #486
- Always normalize resource names PR #486
- Treat floating points number as double when parsing ASCII data blocks PR #486
- Allow bound methods as handler function (the use of is in tests prevented it) PR #486
- Deprecate some unused functions found in the util.py module PR #486
- Warn or raise if the beginning of a binary block is not found among the first characters.
The default value is 25. PR #486
- Make the library less biased towards National Instrument by referring to IVI
where relevant. In particular rename the @ni backend to @ivi PR #456
- Deprecate the `visa` module that is causing issue with the VISA payment
processing package PR #448
1.10.1 (2019-09-11)
-------------------
- Fix reading binary values with an empty header PR #454
- Allow to use different headers in write_binary_values PR #454
- Remove `delay` kwarg from `read_ascii_values` which should never have been there PR #454
- Clarify the documentation about open_timeout PR #451
1.10 (2019-08-09)
-----------------
- Change the returned data_length for IEEE block of undefined size to 0 PR #435
- Add chunk_size and data_length keyword argument to read/query_binary_values PR #435
- Make the ordering of the visa library deterministic PR #399
- Properly close pipes when looking for a shared library path on linux #380
- Fixing missing argument for USBInstrument.usb_control_out PR #353
- avoid attempting to close already closed resources in del PR #424
- add a list_opened_resources method to the ResourceManager PR #415
- use privately stored resource name in Resource class rather than relying on
VisaLibrary PR #415
- keep track of resources created by the ResourceManager to properly close them PR #357
- replace time.clock by time.perf_counter under Python 3 PR #441
- make the ordering of the visa library deterministic PR #399
- properly close pipes when looking for a shared library path on linux #380
- fixing missing argument for USBInstrument.usb_control_out PR #353
- usb_control_out -> control_out. warnings for deprecated usb_control_out PR #353
- Added new function log_to_stream() PR #363
- Made all enumerations of the `constants` module unique.
Fixed duplicate enums in StatusCode PR #371
- Use ni backend when specifying a file in open_visa_library PR #373
- Add flush() method to all resource classes that support viFlush()
(with the exception of VXIInstrument class) PR #390
1.9.1 (2018-08-13)
------------------
- Add expect_termination argument to read_binary_values and
query_binary_values. This allows to retain the behavior of these methods from
pyvisa 1.8, where the length of the block of values that is being read did
not include the very final read termination. For instruments omitting the
termination character when transferring binary data, visa library raises a
timeout exception in case pyvisa 1.9.0 is used. Note that the behavior is not
reverted completely to its pyvisa 1.8 state because for other instruments
(for example, Keysight PNA on Ethernet) the termination character is indeed
added at the end of the message, and is not counted in the declared length in
the header. Prior to 1.9, if the last character of the binary block is also
the termination character, the actual termination could be missed, which
leads to hard to debug bugs hence the choice to preserve 1.9 behavior by
default. PR #349
- fix an encoding handling issue in setup.py PR #343
- if installed use pyvisa-py backend if a binary VISA implementation is not
installed. PR #341
- make custom exception hashable by removing __eq__. This should not impact
user code. PR #340
- fix an issue with the default value for GPIB secondary address in rname.py
PR #336
- ensure docstrings exist before manipulating them (attributes.py) PR #318
- documentation improvements PR #320 #323
1.9 (2017-02-25)
----------------
- Drop support for Python 2.6, 3.2 and 3.3 PR #300
- add the missing read_binary_values and read_ascii_values (PR #301)
- deprecate old methods in MessageBased (ask, read_values, query_values,
write_values, ask_delay) (PR #301)
- add support for hp headers in binary data (PR #301)
- fix encoding issue in write_ascii_values (PR #301)
- use import to load backend rather than pkgutil.iter_modules. This allows
PyVISA to support PyInstaller PR #307
- improvements to the visa shell: attributes type conversion (PR #299),
termchar command (PR #285), timeout command (PR #284),
support for non-default backend (PR #283), console script pyvisa-shell
(PR #286)
- improve speed for large data transfer by using bytearray instead of bytes
(PR #282)
- make Resource a context manager closing it. (PR #255)
- add 64 bits version of registry based functions (PR #278)
- make exceptions pickable (PR #249)
- add resource_name to the output of parse_resource_extended (PR #238)
- fix wait_on_event behavior in case of timeout (PR #234)
- allow selecting the backend using the PYVISA_LIBRARY env var (PR #195)
1.8 (2015-08-24)
----------------
- Fixed error reporting with Unicode filenames.
(Issue #136)
- Improved documentation.
- Clarify timeout getter and setter.
(Issue #167)
- In open_resource, return a Resource object and warns if resource class not registered.
- Register resource class for empty resource class.
- Allow registering parent resource classes.
- Changed types in wrapper to be platform independent (viStatus is always 32 bit).
(Issue #134)
- Fix a not a invalid EventType bug.
(Thanks lupien)
- Added optional resource_pyclass to open_resource.
- Fixed bug in serial flush.
(Thanks bkstein)
- Implemented resource name parsing in pure python.
1.7 (2015-05-16)
----------------
- Removed find_next and find_resources from VisaLibraryBase.
(Issue also #135, thanks)
- Implemented parse_resource and parse_resource_extended.
- Created rname module to parse Resource Names.
- Properly cleanup visa handlers upon resource close.
(thanks lupien)
- Improved gpib classes
(thanks lupien)
- Fixed bug in binary data writing.
(Issue #140, thanks burnpack)
- Fix reseting of line termination for serial.
(Issue #147, thanks lupien)
- Added property to resource name returning the InterfaceType value.
- Added backend information to logging.
- Added the flow_control attribute to ASRL resources.
(Issue #144, thanks lupien)
- Remove empty entry in resources caused by attribute registration.
(Issue #144, thanks lupien)
- Make container=numpy.array work consistently.
(Issue #142, thanks Martin Ritter)
- Create compact/struct.py for python2/3 compatibility.
(thanks Martin Ritter)
- Improve install and uninstall handlers
(Issue #138, #139, #151 thanks lupien)
- Prevents cygwin segfaults.
(Issue #131)
- Better error reporting when a resource cannot be found.
(Issue #129)
- Suppress VI_SUCCESS_MAX_CNT warning on read raw.
(Issue #116)
- Implemented smarter query values based on looking how many bytes are expected.
(Issue #118)
- Fix UnicodeDecodeError on wrong file for library load
(Issue #136, thanks lupien)
1.6.3 (2015-02-08)
------------------
- Added support to Rhode and Schwartz Passport driver.
(Issue #115)
- Fixed access to the interface_type property.
(Issue #114, thanks mordoror)
- Imported constants module in visa module.
(Issue #72)
1.6.2 (2014-12-29)
------------------
- Proper handling of VI_ERROR_RSRC_NFOUND.
- Added conditional dependency for unittest2 in Python2.6
(Issue #107)
- Fixed Shell on Windows.
(Issue #101)
- Moved Lantz Shell to PyVISA.
- Easier way to get debug information.
- Better debug info for backends.
1.6.1 (2014-10-28)
------------------
- Add ignore_warning methods to Resource and ResourceManager.
- Added more formats to binary values.
(Issue #92)
- Fixed exception raising in legacy read_values.
(Issue #91)
- Provide a backend hook to display debug info.
- Better debug info for binary libraries.
- Fixed exceptions formatting
(thanks Matthew94)
1.6 (2014-09-28)
----------------
- 13 Resource Classes covering all resource types.
- Attributes classes provided introspection to VISA attributes.
- Many VISA attributes added to Resource Classes.
- Use of IntEnum for common constants.
- Better documentation.
- Implementation of discoverable backends.
- New functions to encode and decode of IEEE blocks.
- New functions to encode and decode of ASCII blocks.
- New API to transfer values from the instrument.
- Renamed ask/ask_delay/ask_for_values to ask/query_delay/query_values.
Old names still available for backwards compatibility.
- Implemented Group Execute Trigger for GPIBInterface.
(Issue #67)
- Make setuptools a requirement.
(Issue #64 and 68)
- Simplified testing.
- Removed legacy subpackage.
- Removed string handling wrappers.
- Removed Instrument class in favour of Resource.
- Removed status and implemented thread-safe, per instrument, last_status.
- Refactored warning ignoring mechanisms to a thread-safe one.
- Added enum34 requirement for Python < 3.4.
- Removed deprecated term_chars.
1.5 (2014-06-24)
----------------
- Python 3.2+ compatibility.
(Issue #32)
- Change source encoding to utf-8.
- Reorganized package structure.
(Issue #13)
- Improved installation.
- Moved tests inside the package.
- Added CI using Travis.
- Created new wrapper for the underlying library.
- Moved vpp43 code to legacy subpackage.
- Moved documentation to readthedocs.
- Make documentation mobile-friendly.
(Issue #2)
- Removed latex documentation.
- ResourceManager is no longer a singleton.
(Issue #8)
- VisaLibrary is no longer a singleton.
(Issue #7)
- VISA functions are VisaLibrary methods.
(Issue #11)
- Improved detection of VISA library path in all OS.
- Added diagnostics functions to help debugging.
- Added extensive logging to help debugging.
(Issue #12)
- Improved error messages.
- Added encoding parameter to read and write.
(Issue #38)
- Added termination parameter to read and write.
(Issue #38)
- Added size to read_raw.
(Issue #37)
- Removed delay parameter in favor of ask_delay
(Issue #34)
- Added 64 bits VISA library methods.
- Cleaned up code.
1.4 (2012-05-13)
----------------
- add coverage
- add tox testing
1.3 (2008-03-26)
----------------
- Changed licence to MIT.
- Made determination of resource class even more careful.
1.2 (2007-09-19)
----------------
- Changed some __getattr__ to getattr in order to have working exceptions again
(e.g. timeouts) in vpp43
- Softened the test for "INSTR" even further. Introduced the "stb" property for
GPIB instruments.
- Changed "is not an INSTR" error to a warning.
- Added correct prefix for RPM in setup.cfg.
1.1 (2006-11-21)
----------------
- Mentioned possible AttributeError with viParseRsrcEx.
- Made secure against missing viParseRsrcEx.
- Removed superfluous calls to parse_resource_extended.
- setup.py Script can now handle installation with or without setuptools.
- setup.py: Switched to new distutils version.
1.0 (2006-01-23)
----------------
- New properties of SerialInstrument explained.
- Added many further properties to SerialInstrument.
0.9.7 (2005-09-21)
------------------
- Renamed timeout parameter in open() to open_timeout.
- Renamed Timeout parameter in open() to open_timeout.
- Added section about SerialInstrument.
- Added class SerialInstrument. Made termination characters even more robust.
0.9.6 (2005-08-31)
------------------
- Renamed TypeError to VisaTypeError.
- Added InvalidBinaryFormat. Renamed TypeError to VisaTypeError.
- Added a lot of docstrings. Fixed bug with ValueError exception raising.
- Eliminated string exceptions. A little bit of code clean-up.
- Added old distutils inclusion for RPM that cause trouble with my setuptools
installation.
- Set default for term_chars to None and implemented it in write() method.
- Described new default for term_chars.
- Added instrument(). Fixed bugs in __repr()__.
- Improved documentation.
- Switched from distutils to setuptools.
0.9.5 (2005-08-27)
------------------
- Changed package name to "PyVISA".
- visa_attributes.py: 0xFFFFFFFF -> 0xFFFFFFFFL.
- Switched from distutils to setuptools.
0.9.4 (2005-08-12)
------------------
- Added filename selection for VISA DLL with Windows in vpp43.py.
- Added code to skip over header before binary data.
- Cleaned up whitespace.
- Added support for endianess in case of binary transfers.
- Improved binary reading; now it also accepts things like "#267...".
0.9.3 (2005-07-21)
------------------
- Changed default termination characters to "" for GPIB instruments. LF and CR
are completely stripped from the end of read string, no matter how the
termination characters are set.
0.9.2 (2005-07-19)
------------------
- Added remaining keyword arguments for Instrument constructor. Added CR and LF.
Added working support for reading binary data.
- Added ask() and ask_for_values().
- Partially implemented binary reading.
- Split the old term_chars in term_chars, delay, and send_end.
- Implemented warning system for invalid keyword arguments. Added test for valid
float values in read_floats(). Added full term_char string in __get_term_char().
- Standard timeout increased from 2 to 5 seconds.
- read_floats() returns *always* a list.
- Moved trigger() method to Instrument class.
- Fixed bug in regular expression for termination characters.
- Fixed bug with ignored term_char attribute for GPIB instruments.
- Increased chunk_size's default value and added it to the keyword arguments of the constructor.
0.9.1 (2005-07-03)
------------------
- Added properties resource_name and resource_class to ResourceTemplate. Used
both to simplify code.
0.9 (2005-06-29)
----------------
- First usable release. See ChangeLog for more information.
|