{{Header}} {{Title| title=How-to: Install PyLRU in {{project_name_long}} }} {{#seo: |description=PyLRU python library |image=Py123123.png }} [[File:Py123123.png|thumb]] {{intro| PyLRU python library }} __FORCETOC__ = Introduction = PyLRU is: https://pypi.org/project/pylru/
...a true LRU cache along with several support classes. The cache is efficient and written in pure Python. It works with Python 2.6+ including the 3.x series. Basic operations (lookup, insert, delete) all run in a constant amount of time. Pylru provides a cache class with a simple dict interface. It also provides classes to wrap any object that has a dict interface with a cache. Both write-through and write-back semantics are supported. Pylru also provides classes to wrap functions in a similar way, including a function decorator.= PyLRU Setup = {{mbox | type = notice | image = [[File:Ambox_notice.png|40px|alt=Info]] | text = Perform the following procedure in {{project_name_workstation_long}} ([[Qubes|{{q_project_name_long}}]]:
{{project_name_workstation_vm}}
App Qube).
}}
== Download ==
Acquire the [https://github.com/jlhutch/pylru PyLRU] source code by Jay Hutchinson ([https://github.com/jlhutch jlhutch
on GitHub]).
{{CodeSelect|code=
git clone https://github.com/jlhutch/pylru ~/pylru
}}
== Digital Signature Verification ==
{{mbox
| type = notice
| image = [[File:Ambox_notice.png|40px|alt=Info]]
| text = This section is optional, but provides better security.
}}
{{Box|text=
'''1.''' Import Jay Hutchinson signing key.
* https://github.com/jlhutch/pylru/issues/33
* https://web.archive.org/web/20231219165732/https://api.github.com/users/jlhutch/gpg_keys
Note: File name and URL might change in the future from .gpg
to .asc
in the future as per [https://github.com/jlhutch/pylru/issues/33 PyLRU github issue: please upload your OpenPGP / gpg public key].
{{gpg key
|url=scurl-download https://github.com/jlhutch.gpg
|source_filename=jlhutch.gpg
|fingerprint=1E0B4C97BD81966B3BDCF84D2FF6B00325E9519C
|gpg_fingerprint_output=
In late-2023, the output is identical to the following.
Key fingerprint = 1E0B 4C97 BD81 966B 3BDC F84D 2FF6 B003 25E9 519C
}}
'''2.''' Enter the repository.
{{CodeSelect|code=
cd ~/pylru
}}
'''3.''' Perform digital signature verification.
Alternative command:
{{CodeSelect|code=
git log -1 --show-signature
}}
}}
{{CodeSelect|code=
git verify-commit HEAD
}}
{{GnuPG-Success}}
{{GnuPG-Warning}}
}}
== Installation ==
{{Box|text=
'''1.''' Create folder /usr/local/lib/python3.11/dist-packages/
.
{{CodeSelect|code=
sudo mkdir -p /usr/local/lib/python3.11/dist-packages/
}}
'''2.''' Install pylru.py
in folder /usr/local/lib/python3.11/dist-packages/
.
{{CodeSelect|code=
sudo cp ~/pylru/pylru.py /usr/local/lib/python3.11/dist-packages/
}}
'''3.''' Done.
PyLRU installation is now complete.
}}
= Troubleshooting =
electrumx_server[]: PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.11/dist-pa...pylru.py''''Permission fix.''' Required in some build versions of {{project_name_long}}. The issue is the read permission for "
others
" than root were not set during file creation.
Related issue: [https://github.com/Kicksecure/security-misc/issues/185 Restrict umask to 027 except for sudo/root broken]
{{CodeSelect|code=
sudo chmod --recursive o+r /usr/local/lib/python3.11/dist-packages
}}
= Footnotes =
{{reflist|close=1}}
{{Footer}}
[[Category:Documentation]]