%global _empty_manifest_terminate_build 0 Name: python-nanoid Version: 2.0.0 Release: 1 Summary: A tiny, secure, URL-friendly, unique string ID generator for Python License: MIT URL: https://github.com/puyuan/py-nanoid Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b7/9d/0250bf5935d88e214df469d35eccc0f6ff7e9db046fc8a9aeb4b2a192775/nanoid-2.0.0.tar.gz BuildArch: noarch %description # Nano ID [![CircleCI](https://circleci.com/gh/puyuan/py-nanoid/tree/master.svg?style=svg)](https://circleci.com/gh/puyuan/py-nanoid/tree/master) A tiny, secure, URL-friendly, unique string ID generator for Python. * __Safe__. It uses cryptographically strong random APIs and tests distribution of symbols; * __Compact__. It uses a larger alphabet than UUID (A-Za-z0-9_-). So ID size was reduced from 36 to 21 symbols. ## Usage Install Nano ID using pip: ``` pip install nanoid ``` ### Normal The main module uses URL-friendly symbols (A-Za-z0-9_-) and returns an ID with 21 characters (to have a collision probability similar to UUID v4). ```python from nanoid import generate generate() # => NDzkGoTCdRcaRyt7GOepg ``` Symbols `-,.()` are not encoded in the URL. If used at the end of a link they could be identified as a punctuation symbol. If you want to reduce ID length (and increase collisions probability), you can pass the length as an argument. ```python from nanoid import generate generate(size=10) # => "IRFa-VaY2b" ``` Don’t forget to check the safety of your ID length in ID [collision probability calculator](https://zelark.github.io/nano-id-cc/). ## Custom Alphabet or Length If you want to change the ID's alphabet or length you can use the internal generate module. ```python from nanoid import generate generate('1234567890abcdef', 10) # => "4f9zd13a42" ``` Non-secure API is also available: ```python from nanoid import non_secure_generate non_secure_generate('1234567890abcdef', 10) ``` ## Tools * [ID size calculator](https://zelark.github.io/nano-id-cc/) to choice smaller ID size depends on your case. nanoid-dictionary with popular alphabets to use with nanoid/generate; * [`nanoid-dictionary`](https://github.com/aidarkhanov/py-nanoid-dictionary) with popular alphabets to use. ## Other Programming Languages * [C#](https://github.com/codeyu/nanoid-net) * [Clojure and ClojureScript](https://github.com/zelark/nano-id) * [Crystal](https://github.com/mamantoha/nanoid.cr) * [Dart](https://github.com/pd4d10/nanoid) * [Go](https://github.com/matoous/go-nanoid) * [Elixir](https://github.com/railsmechanic/nanoid) * [Haskell](https://github.com/4e6/nanoid-hs) * [Java](https://github.com/aventrix/jnanoid) * [JavaScript](https://github.com/ai/nanoid) * [Nim](https://github.com/icyphox/nanoid.nim) * [PHP](https://github.com/hidehalo/nanoid-php) * [Ruby](https://github.com/radeno/nanoid.rb) * [Rust](https://github.com/nikolay-govorov/nanoid) * [Swift](https://github.com/antiflasher/NanoID) ## Changelog - v2.0.0 - Replace ~ to - in default alphabet - Add non-secure fast generator - Reduce default characters from 22 to 21 - v0.3.0 - Fix array out of bound error. ## Credits - Andrey Sitnik for [Nano ID](https://github.com/ai/nanoid); - [Dair Aidarkhanov](https://github.com/aidarkhanov) for main contribution to v2.0, and adding test cases. - Aleksandr Zhuravlev for [ID collision probability](https://zelark.github.io/nano-id-cc/). %package -n python3-nanoid Summary: A tiny, secure, URL-friendly, unique string ID generator for Python Provides: python-nanoid BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-nanoid # Nano ID [![CircleCI](https://circleci.com/gh/puyuan/py-nanoid/tree/master.svg?style=svg)](https://circleci.com/gh/puyuan/py-nanoid/tree/master) A tiny, secure, URL-friendly, unique string ID generator for Python. * __Safe__. It uses cryptographically strong random APIs and tests distribution of symbols; * __Compact__. It uses a larger alphabet than UUID (A-Za-z0-9_-). So ID size was reduced from 36 to 21 symbols. ## Usage Install Nano ID using pip: ``` pip install nanoid ``` ### Normal The main module uses URL-friendly symbols (A-Za-z0-9_-) and returns an ID with 21 characters (to have a collision probability similar to UUID v4). ```python from nanoid import generate generate() # => NDzkGoTCdRcaRyt7GOepg ``` Symbols `-,.()` are not encoded in the URL. If used at the end of a link they could be identified as a punctuation symbol. If you want to reduce ID length (and increase collisions probability), you can pass the length as an argument. ```python from nanoid import generate generate(size=10) # => "IRFa-VaY2b" ``` Don’t forget to check the safety of your ID length in ID [collision probability calculator](https://zelark.github.io/nano-id-cc/). ## Custom Alphabet or Length If you want to change the ID's alphabet or length you can use the internal generate module. ```python from nanoid import generate generate('1234567890abcdef', 10) # => "4f9zd13a42" ``` Non-secure API is also available: ```python from nanoid import non_secure_generate non_secure_generate('1234567890abcdef', 10) ``` ## Tools * [ID size calculator](https://zelark.github.io/nano-id-cc/) to choice smaller ID size depends on your case. nanoid-dictionary with popular alphabets to use with nanoid/generate; * [`nanoid-dictionary`](https://github.com/aidarkhanov/py-nanoid-dictionary) with popular alphabets to use. ## Other Programming Languages * [C#](https://github.com/codeyu/nanoid-net) * [Clojure and ClojureScript](https://github.com/zelark/nano-id) * [Crystal](https://github.com/mamantoha/nanoid.cr) * [Dart](https://github.com/pd4d10/nanoid) * [Go](https://github.com/matoous/go-nanoid) * [Elixir](https://github.com/railsmechanic/nanoid) * [Haskell](https://github.com/4e6/nanoid-hs) * [Java](https://github.com/aventrix/jnanoid) * [JavaScript](https://github.com/ai/nanoid) * [Nim](https://github.com/icyphox/nanoid.nim) * [PHP](https://github.com/hidehalo/nanoid-php) * [Ruby](https://github.com/radeno/nanoid.rb) * [Rust](https://github.com/nikolay-govorov/nanoid) * [Swift](https://github.com/antiflasher/NanoID) ## Changelog - v2.0.0 - Replace ~ to - in default alphabet - Add non-secure fast generator - Reduce default characters from 22 to 21 - v0.3.0 - Fix array out of bound error. ## Credits - Andrey Sitnik for [Nano ID](https://github.com/ai/nanoid); - [Dair Aidarkhanov](https://github.com/aidarkhanov) for main contribution to v2.0, and adding test cases. - Aleksandr Zhuravlev for [ID collision probability](https://zelark.github.io/nano-id-cc/). %package help Summary: Development documents and examples for nanoid Provides: python3-nanoid-doc %description help # Nano ID [![CircleCI](https://circleci.com/gh/puyuan/py-nanoid/tree/master.svg?style=svg)](https://circleci.com/gh/puyuan/py-nanoid/tree/master) A tiny, secure, URL-friendly, unique string ID generator for Python. * __Safe__. It uses cryptographically strong random APIs and tests distribution of symbols; * __Compact__. It uses a larger alphabet than UUID (A-Za-z0-9_-). So ID size was reduced from 36 to 21 symbols. ## Usage Install Nano ID using pip: ``` pip install nanoid ``` ### Normal The main module uses URL-friendly symbols (A-Za-z0-9_-) and returns an ID with 21 characters (to have a collision probability similar to UUID v4). ```python from nanoid import generate generate() # => NDzkGoTCdRcaRyt7GOepg ``` Symbols `-,.()` are not encoded in the URL. If used at the end of a link they could be identified as a punctuation symbol. If you want to reduce ID length (and increase collisions probability), you can pass the length as an argument. ```python from nanoid import generate generate(size=10) # => "IRFa-VaY2b" ``` Don’t forget to check the safety of your ID length in ID [collision probability calculator](https://zelark.github.io/nano-id-cc/). ## Custom Alphabet or Length If you want to change the ID's alphabet or length you can use the internal generate module. ```python from nanoid import generate generate('1234567890abcdef', 10) # => "4f9zd13a42" ``` Non-secure API is also available: ```python from nanoid import non_secure_generate non_secure_generate('1234567890abcdef', 10) ``` ## Tools * [ID size calculator](https://zelark.github.io/nano-id-cc/) to choice smaller ID size depends on your case. nanoid-dictionary with popular alphabets to use with nanoid/generate; * [`nanoid-dictionary`](https://github.com/aidarkhanov/py-nanoid-dictionary) with popular alphabets to use. ## Other Programming Languages * [C#](https://github.com/codeyu/nanoid-net) * [Clojure and ClojureScript](https://github.com/zelark/nano-id) * [Crystal](https://github.com/mamantoha/nanoid.cr) * [Dart](https://github.com/pd4d10/nanoid) * [Go](https://github.com/matoous/go-nanoid) * [Elixir](https://github.com/railsmechanic/nanoid) * [Haskell](https://github.com/4e6/nanoid-hs) * [Java](https://github.com/aventrix/jnanoid) * [JavaScript](https://github.com/ai/nanoid) * [Nim](https://github.com/icyphox/nanoid.nim) * [PHP](https://github.com/hidehalo/nanoid-php) * [Ruby](https://github.com/radeno/nanoid.rb) * [Rust](https://github.com/nikolay-govorov/nanoid) * [Swift](https://github.com/antiflasher/NanoID) ## Changelog - v2.0.0 - Replace ~ to - in default alphabet - Add non-secure fast generator - Reduce default characters from 22 to 21 - v0.3.0 - Fix array out of bound error. ## Credits - Andrey Sitnik for [Nano ID](https://github.com/ai/nanoid); - [Dair Aidarkhanov](https://github.com/aidarkhanov) for main contribution to v2.0, and adding test cases. - Aleksandr Zhuravlev for [ID collision probability](https://zelark.github.io/nano-id-cc/). %prep %autosetup -n nanoid-2.0.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-nanoid -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Mar 09 2023 Python_Bot - 2.0.0-1 - Package Spec generated