a more pythonic way to access the windows registry as winreg
Project description
lib_registry
Version v2.0.4 as of 2020-08-01 see Changelog
a more pythonic way to access the windows registry as winreg
command line interface is prepared - if someone needs to use it via commandline, give me a note.
automated tests, Travis Matrix, Documentation, Badges, etc. are managed with PizzaCutter (cookiecutter on steroids)
Python version required: 3.6.0 or newer
tested on linux “bionic” with python 3.6, 3.7, 3.8, 3.8-dev, pypy3 - architectures: amd64, ppc64le, s390x, arm64
100% code coverage, codestyle checking ,mypy static type checking ,tested under Linux, macOS, Windows, automatic daily builds and monitoring
Try it Online
You might try it right away in Jupyter Notebook by using the “launch binder” badge, or click here
Usage
>>> from lib_registry import *
>>> # Read a Value from the Registry
>>> key = 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\S-1-5-20'
>>> get_value(key_name=key, value_name='ProfileImagePath')
'%systemroot%\\\\ServiceProfiles\\\\NetworkService'
>>> # Create a Key
>>> create_key(r'HKCU\\Software\\lib_registry_test')
>>> # Delete a Key
>>> delete_key(r'HKCU\\Software\\lib_registry_test')
>>> # Write a Value to the Registry
>>> create_key(r'HKCU\\Software\\lib_registry_test')
>>> set_value(key_name=r'HKCU\\Software\\lib_registry_test', value_name='test_name', value='test_string', value_type=REG_SZ)
>>> result = get_value(key_name=r'HKCU\\Software\\lib_registry_test', value_name='test_name')
>>> assert result == 'test_string'
>>> # Delete a Value from the Registry
>>> delete_value(key_name=r'HKCU\\Software\\lib_registry_test', value_name='test_name')
>>> delete_key(r'HKCU\\Software\\lib_registry_test')
>>> # Check if a key exists
>>> key_exist('HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\S-1-5-20'
True
>>> key_exist('HKEY_LOCAL_MACHINE\\Software\\DoesNotExist')
False
>>> # get the SIDs of all Windows users
>>> get_ls_user_sids()
['.DEFAULT', 'S-1-5-18', 'S-1-5-19', 'S-1-5-20', ...]
>>> # get the Username from SID
>>> get_username_from_sid(sid='S-1-5-20')
'NetworkService'
Usage from Commandline
Usage: lib_registry [OPTIONS] COMMAND [ARGS]...
a more pythonic way to access the windows registry as winreg
Options:
--version Show the version and exit.
--traceback / --no-traceback return traceback information on cli
-h, --help Show this message and exit.
Commands:
info get program informations
Installation and Upgrade
Before You start, its highly recommended to update pip and setup tools:
python -m pip --upgrade pip
python -m pip --upgrade setuptools
python -m pip --upgrade wheel
to install the latest release from PyPi via pip (recommended):
# install latest release from PyPi
python -m pip install --upgrade lib_registry
# test latest release from PyPi without installing (can be skipped)
python -m pip install lib_registry --install-option test
to install the latest development version from github via pip:
# normal install
python -m pip install --upgrade git+https://github.com/bitranox/lib_registry.git
# to test without installing (can be skipped)
python -m pip install git+https://github.com/bitranox/lib_registry.git --install-option test
# to install and upgrade all dependencies regardless of version number
python -m pip install --upgrade git+https://github.com/bitranox/lib_registry.git --upgrade-strategy eager
include it into Your requirements.txt:
# Insert following line in Your requirements.txt:
# for the latest Release on pypi:
lib_registry
# for the latest development version :
lib_registry @ git+https://github.com/bitranox/lib_registry.git
# to install and upgrade all modules mentioned in requirements.txt:
python -m pip install --upgrade -r /<path>/requirements.txt
to install the latest development version from source code:
# cd ~
$ git clone https://github.com/bitranox/lib_registry.git
$ cd lib_registry
# to test without installing (can be skipped)
python setup.py test
# normal install
python setup.py install
via makefile: makefiles are a very convenient way to install. Here we can do much more, like installing virtual environments, clean caches and so on.
# from Your shell's homedirectory:
$ git clone https://github.com/bitranox/lib_registry.git
$ cd lib_registry
# to run the tests:
$ make test
# to install the package
$ make install
# to clean the package
$ make clean
# uninstall the package
$ make uninstall
Requirements
following modules will be automatically installed :
## Project Requirements
click
cli_exit_tools @ git+https://github.com/bitranox/cli_exit_tools.git
fake_winreg @ git+https://github.com/bitranox/fake_winreg.git
Acknowledgements
special thanks to “uncle bob” Robert C. Martin, especially for his books on “clean code” and “clean architecture”
Contribute
I would love for you to fork and send me pull request for this project. - please Contribute
License
This software is licensed under the MIT license
—
Changelog
new MAJOR version for incompatible API changes,
new MINOR version for added functionality in a backwards compatible manner
new PATCH version for backwards compatible bug fixes
- tasks:
test if caching of handles make sense, especially on network
documentation update
pathlib-like Interface
jupyter notebook update
v2.0.4
2020-08-01: fix pypi deploy
v2.0.3
2020-07-31: fix travis build
v2.0.2
- 2020-07-29: feature release
use the new pizzacutter template
use cli_exit_tools
v2.0.1
- 2020-07-16: feature release
fix cli test
enable traceback option on cli errors
corrected error in DeleteKey, missing_ok
v2.0.0
- 2020-07-14feature release
fix setup.py for deploy on pypi
fix travis for pypi deploy testing
v2.0.0a0
- 2020-07-13intermediate release
start to implement additional pathlib-like interface
implement fake-winreg to be able to develop and test under linux
v1.0.4
- 2020-07-08patch release
new click CLI
use PizzaCutter Template
added jupyter notebook
reorganized modules and import
updated documentation
v1.0.3
2019-09-02: strict mypy type checking, housekeeping
v1.0.2
2019-04-10: initial PyPi release
v1.0.1
2019-03-29: prevent import error when importing under linux
v1.0.0
2019-03-28: Initial public release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for lib_registry-2.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b4f39d2db7fbd76b8f353d119f80fdc5844d561bf9620319ead52c0f9e44e87 |
|
MD5 | 6639b9a30a42409c255adb26e81feb7e |
|
BLAKE2b-256 | 526ecbe7363653a7e7f8b4bfef40677b1cb530f216c94afc6961a9ac38fa86ac |