{"id":29134053,"url":"https://github.com/pyfunc/free-on-pypi","last_synced_at":"2025-06-30T08:12:26.927Z","repository":{"id":300414062,"uuid":"1006104959","full_name":"pyfunc/free-on-pypi","owner":"pyfunc","description":"sprawdza wszystkie dwuliterowe kombinacje nazw na PyPI z opóźnieniem 100 ms między zapytaniami, aby uniknąć przeciążenia sieci lub limitów:","archived":false,"fork":false,"pushed_at":"2025-06-21T17:07:32.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T18:22:56.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyfunc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-21T14:00:42.000Z","updated_at":"2025-06-21T17:07:36.000Z","dependencies_parsed_at":"2025-06-21T18:22:58.967Z","dependency_job_id":null,"html_url":"https://github.com/pyfunc/free-on-pypi","commit_stats":null,"previous_names":["emllm/free-on-pypi","pyfunc/free-on-pypi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pyfunc/free-on-pypi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ffree-on-pypi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ffree-on-pypi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ffree-on-pypi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ffree-on-pypi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyfunc","download_url":"https://codeload.github.com/pyfunc/free-on-pypi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ffree-on-pypi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262736668,"owners_count":23356152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-30T08:12:25.694Z","updated_at":"2025-06-30T08:12:26.920Z","avatar_url":"https://github.com/pyfunc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# free-on-pypi\n\n## Opis\nNarzędzie do sprawdzania dostępności nazw pakietów na PyPI i GitHub. Dostarcza trzy tryby pracy:\n\n1. Tryb pliku - sprawdza listę nazw z pliku tekstowego\n2. Tryb generatora - sprawdza wszystkie kombinacje \"aba\" (gdzie a i b to małe litery alfabetu)\n3. Tryb GitHub - sprawdza dostępność nazw na GitHub (użytkownicy i organizacje)\n\n## Instalacja\n\n```bash\npip install requests\n```\n\n## Użycie\n\n### Przykłady użycia\n\n#### 1. Sprawdzanie listy nazw z pliku\n```bash\n# Sprawdzenie nazw z pliku names.txt na PyPI\npython pypi.py from_file\n\n# Sprawdzenie nazw z pliku names.txt na GitHub\npython github.py from_file\n```\n\n#### 2. Sprawdzanie wszystkich kombinacji \"ab\"\n```bash\n# Sprawdzenie wszystkich kombinacji \"ab\" na PyPI\npython pypi.py generator\n```\n\n#### 3. Używanie niestandardowych plików\n```python\n# PyPI z niestandardowymi plikami\nfrom_file(\n    INPUT_FILE=\"my_names.txt\",\n    FREE_FILE=\"available_packages.txt\",\n    BUSY_FILE=\"taken_packages.txt\",\n    DELAY=0.2\n)\n\n# GitHub z niestandardowymi plikami\nfrom_file(\n    INPUT_FILE=\"usernames.txt\",\n    FREE_FILE=\"available_users.txt\",\n    BUSY_FILE=\"taken_users.txt\",\n    DELAY=0.5\n)\n```\n\n#### 4. Wznowienie przerwanego sprawdzania\n```bash\n# Generator automatycznie wznowi sprawdzanie od ostatniego miejsca\npython pypi.py generator\n```\n\n#### 5. Sprawdzanie nazw z walidacją\n```python\n# Przykład wyniku dla nazwy nieprawidłowej dla PyPI\n# Zostanie zapisana do pliku busy.txt jako:\n\"beta (Nazwa jest zarezerwowana)\"\n\n# Przykład wyniku dla nazwy zajętej\n# Zostanie zapisana do pliku busy.txt jako:\n\"numpy\"\n\n# Przykład wyniku dla nazwy wolnej\n# Zostanie zapisana do pliku free.txt jako:\n\"mycoolpackage\"\n```\n\n#### 6. Przykład zawartości pliku names.txt\n```\nmyproject\ncooltool\nawesomeapp\npythonlib\n```\n\n#### 7. Przykład zawartości pliku usernames.txt\n```\njohnsmith\ndevopsuser\ngithubuser\n```\n\n#### 8. Opcje zaawansowane\n```python\n# Zwiększenie opóźnienia dla większej liczby nazw\nfrom_file(INPUT_FILE=\"big_list.txt\", DELAY=0.5)\n\n# Używanie generatora z innym plikiem postępu\ngenerator(PROGRESS_FILE=\"my_progress.txt\", DELAY=0.15)\n```\n\n## Funkcje\n\n### PyPI Checking (pypi.py)\n- Sprawdza dostępność nazw na PyPI używając wielu metod\n- Waliduje nazwy według zasad PyPI\n- Zapisuje wyniki do plików wyjściowych\n- Domyślnie używa opóźnienia 100ms\n\n### GitHub Checking (github.py)\n- Sprawdza dostępność nazw na GitHub (użytkownicy i organizacje)\n- Zapisuje wyniki do plików wyjściowych\n- Domyślnie używa opóźnienia 500ms\n\n## Walidacja nazw na PyPI\nNazwy na PyPI muszą spełniać następujące warunki:\n1. Długość: co najmniej 2 znaki\n2. Znaki: małe litery, cyfry, podkreślenia i myślniki\n3. Nie może zaczynać się od podkreślenia\n4. Nie może zawierać spacji\n5. Nie może być zarezerwowana (np. 'python', 'pypi', 'github' itp.)\n\nLista zarezerwowanych słów:\n- host, python, py, pip, conda, anaconda\n- pypi, github, git, npm, node, javascript\n- java, ruby, rust, go, c, cpp, c++\n- typescript, php, sql, nosql, mongodb, mysql\n- postgresql, oracle, microsoft, google, amazon\n- aws, azure, gcp, docker, kubernetes, k8s\n- terraform, ansible, jenkins, circleci, githubactions\n- gitlabci, travisci, bitbucket\n- i wiele innych...\n\n## Wyjście\n- Nazwy wolne: zapisywane do pliku `free.txt`\n- Nazwy zajęte: zapisywane do pliku `busy.txt`\n- Postęp (tylko dla generatora): zapisywany do pliku `progress.txt`\n\n## Uwagi\n- Narzędzie używa opóźnienia między zapytaniami, aby uniknąć przeciążenia serwerów\n- Wszystkie nazwy są sprawdzane w formie małych liter\n- Pliki wynikowe są zapisywane w trybie append (dodawanie) dla generatora\n- Generator może być wznowiony z poprzedniego miejsca dzięki plikowi postępu\n- Nazwy nieprawidłowe dla PyPI zostają zapisane w pliku busy.txt z powodem odrzucenia\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyfunc%2Ffree-on-pypi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyfunc%2Ffree-on-pypi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyfunc%2Ffree-on-pypi/lists"}