libvcs - abstraction layer for vcs, powers vcspull.

Overview

libvcs - abstraction layer for vcs, powers vcspull.

Python Package Docs Build Status Code Coverage License

Setup

$ pip install libvcs

Open up python:

$ python

# or for nice autocomplete and syntax highlighting
$ pip install ptpython
$ ptpython

Usage

Create a Repo object of the project to inspect / checkout / update:

>>> from libvcs.shortcuts import create_repo_from_pip_url, create_repo

# repo is an object representation of a vcs repository.
>>> r = create_repo(url='https://www.github.com/vcs-python/libtmux',
...                 vcs='git',
...                 repo_dir='/tmp/libtmux')

# or via pip-style URL
>>> r = create_repo_from_pip_url(
...         pip_url='git+https://www.github.com/vcs-python/libtmux',
...         repo_dir='/tmp/libtmux')

Update / clone repo:

# it may or may not be checked out/cloned on the system yet
>>> r.update_repo()

Get revision:

>>> r.get_revision()
u'5c227e6ab4aab44bf097da2e088b0ff947370ab8'

Donations

Your donations fund development of new features, testing and support. Your money will go directly to maintenance and development of the project. If you are an individual, feel free to give whatever feels right for the value you get out of the project.

See donation options at https://www.git-pull.com/support.html.

More information

Comments
  • Git update_repo fails when there are only untracked files

    Git update_repo fails when there are only untracked files

    Currenly when using vcspull sync, and a repo has untracked files and no other changes, the command fails with something like

    File "/home/jhon/.local/lib/python3.10/site-packages/vcspull/cli/sync.py", line 104, in update_repo
      r.update_repo(set_remotes=True)  # Creates repo if not exists and fetches
    File "/home/jhon/.local/lib/python3.10/site-packages/libvcs/projects/git.py", line 465, in update_repo
      self.run(["stash", "pop", "--index", "--quiet"])
    File "/home/jhon/.local/lib/python3.10/site-packages/libvcs/projects/base.py", line 154, in run
      return run(
    File "/home/jhon/.local/lib/python3.10/site-packages/libvcs/cmd/core.py", line 211, in run
      raise exc.CommandError(output=output, returncode=code, cmd=cmd)
    libvcs.exc.CommandError: Command failed with code 1: git stash pop --index --quiet)
    

    That is because git status returns output including the untracked files while git stash save doesn't have the -u flag and so no stash is actually created.

    To fix the problem, one of these should be performed:

    • Add --untracked-files=no to git status
    • Add --include-untracked to git stash save
    • Check if a stash was actually created before trying to pop
    bug 
    opened by jfpedroza 17
  • fix(git): Fix update_repo when there are untracked files

    fix(git): Fix update_repo when there are untracked files

    Fixes #395

    I went with the adding --include-untracked to git stash save route. That way if there are conflicts the rebase will still be performed.

    Let me know if that's how I should make the tests (my Python is quite rusty) or if you have any other comments.

    I can make the backport PR once this is approved.

    opened by jfpedroza 10
  • Tests broken?

    Tests broken?

    Hi,

    i tried to install the package for development as documented in https://github.com/vcs-python/libvcs/blob/master/docs/developing.md. Tests are currently failing. Can anyone take a look what's wrong please?

    need-more-info 
    opened by rnixx 6
  • libvcs.git: Fix case where revision is specified as /"">

    libvcs.git: Fix case where revision is specified as "/"

    This commit ensures the following case works as expected:

    repo = create_repo( url="https://github.com/vcs-python/libvcs", vcs="git", rev="origin/master", repo_dir="/tmp/libvcs-checkout" ) repo.update_repo()

    opened by jcfr 6
  • build(deps): bump poetry from 1.0.10 to 1.1.9

    build(deps): bump poetry from 1.0.10 to 1.1.9

    Bumps poetry from 1.0.10 to 1.1.9.

    Release notes

    Sourced from poetry's releases.

    1.1.9

    Fixed

    1.1.8

    Fixed

    • Fixed an error with repository prioritization when specifying secondary repositories. (#4241)
    • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4330, #4407)
    • Fixed the evaluation of relative path dependencies. (#4246)
    • Fixed environment detection for Python 3.10 environments. (#4387)
    • Fixed an error in the evaluation of in/not in markers (python-poetry/poetry-core#189)

    1.1.7

    Note: Lock files might need to be regenerated for the first fix below to take effect. You can use poetry lock to do so without the --no-update option.

    Changed

    • This release is compatible with the install-poetry.py installation script to ease the migration path from 1.1 releases to 1.2 releases. (#4192)

    Fixed

    • Fixed an issue where transitive dependencies of directory or VCS dependencies were not installed or otherwise removed. (#4203)
    • Fixed an issue where the combination of the --tree and --no-dev options for the show command was still displaying development dependencies. (#3992)

    1.1.6

    Fixed

    • Fixed export format for path dependencies. (#3121)
    • Fixed errors caused by environment modification when executing some commands. (#3253)
    • Fixed handling of wheel files with single-digit versions. (#3338)
    • Fixed an error when handling single-digit Python markers. (poetry-core#156)
    • Fixed dependency markers not being properly copied when changing the constraint leading to resolution errors. (poetry-core#163)
    • Fixed an error where VCS dependencies were always updated. (#3947)
    • Fixed an error where the incorrect version of a package was locked when using environment markers. (#3945)

    1.1.5

    Fixed

    • Fixed an error in the export command when no lock file existed and a verbose flag was passed to the command. (#3310)
    • Fixed an error where the pyproject.toml was not reverted when using the add command. (#3622)
    • Fixed errors when using non-HTTPS indices. (#3622)
    • Fixed errors when handling simple indices redirection. (#3622)
    • Fixed errors when trying to handle newer wheels by using the latest version of poetry-core and packaging. (#3677)
    • Fixed an error when using some versions of poetry-core due to an incorrect import . (#3696)

    ... (truncated)

    Changelog

    Sourced from poetry's changelog.

    [1.1.9] - 2021-09-18

    Fixed

    [1.1.8] - 2021-08-19

    Fixed

    • Fixed an error with repository prioritization when specifying secondary repositories. (#4241)
    • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4330#4407)
    • Fixed the evaluation of relative path dependencies. (#4246)
    • Fixed environment detection for Python 3.10 environments. (#4387)
    • Fixed an error in the evaluation of in/not in markers (python-poetry/poetry-core#189)

    [1.2.0a2] - 2021-08-01

    Added

    • Poetry now supports dependency groups. (#4260)
    • The install command now supports a --sync option to synchronize the environment with the lock file. (#4336)

    Changed

    • Improved the way credentials are retrieved to better support keyring backends. (#4086)
    • The --remove-untracked option of the install command is now deprecated in favor of the new --sync option. (#4336)
    • The user experience when installing dependency groups has been improved. (#4336)

    Fixed

    • Fixed performance issues when resolving dependencies. (#3839)
    • Fixed an issue where transitive dependencies of directory or VCS dependencies were not installed or otherwise removed. (#4202)
    • Fixed the behavior of the init command in non-interactive mode. (#2899)
    • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4329)
    • Fixed the display of possible solutions for some common errors. (#4332)

    [1.1.7] - 2021-06-25

    Note: Lock files might need to be regenerated for the first fix below to take effect.
    You can use poetry lock to do so without the --no-update option.

    Changed

    • This release is compatible with the install-poetry.py installation script to ease the migration path from 1.1 releases to 1.2 releases. (#4192)

    Fixed

    ... (truncated)

    Commits
    • 69bd682 Bump version to 1.1.9
    • 9d8aed4 Update lock file
    • a9e59ed Merge pull request #4507 from python-poetry/1.1-fix-system-env-detection
    • 459c8c9 Fix system env detection
    • 634bb23 Merge pull request #4420 from pietrodn/fix/hash-check-backport-1.1
    • d033cba style: linting
    • 8268795 Merge pull request #4444 from python-poetry/1.1-fix-archive-hash-generation
    • 8238cab Fix archive hash generation
    • 8956a0c fix: python 2.7 syntax
    • 435ff81 Throw a RuntimeError on hash mismatch in Chooser._get_links (#3885)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 3
  • Bump sphinx from 2.3.1 to 3.1.1

    Bump sphinx from 2.3.1 to 3.1.1

    Bumps sphinx from 2.3.1 to 3.1.1.

    Changelog

    Sourced from sphinx's changelog.

    Release 3.1.1 (released Jun 14, 2020)

    Incompatible changes

    • #7808: napoleon: a type for attribute are represented as typed field

    Features added

    • #7807: autodoc: Show detailed warning when type_comment is mismatched with its signature

    Bugs fixed

    • #7808: autodoc: Warnings raised on variable and attribute type annotations
    • #7802: autodoc: EOFError is raised on parallel build
    • #7821: autodoc: TypeError is raised for overloaded C-ext function
    • #7805: autodoc: an object which descriptors returns is unexpectedly documented
    • #7807: autodoc: wrong signature is shown for the function using contextmanager
    • #7812: autosummary: generates broken stub files if the target code contains an attribute and module that are same name
    • #7808: napoleon: Warnings raised on variable and attribute type annotations
    • #7811: sphinx.util.inspect causes circular import problem

    Release 3.1.0 (released Jun 08, 2020)

    Dependencies

    • #7746: mathjax: Update to 2.7.5

    Incompatible changes

    • #7477: imgconverter: Invoke "magick convert" command by default on Windows

    Deprecated

    • The first argument for sphinx.ext.autosummary.generate.AutosummaryRenderer has been changed to Sphinx object
    • sphinx.ext.autosummary.generate.AutosummaryRenderer takes an object type as an argument
    • The ignore argument of sphinx.ext.autodoc.Documenter.get_doc()
    • The template_dir argument of sphinx.ext.autosummary.generate. AutosummaryRenderer
    ... (truncated)
    Commits
    • e7c2949 Bump to 3.1.1 final
    • d2cec67 Merge pull request #7831 from tk0miya/7807_contextmanager
    • 941e340 Merge branch '3.1.x' into 7807_contextmanager
    • b567721 Merge pull request #7829 from tk0miya/7805_retval_of_descriptors
    • 6c3db6d Fix #7805: autodoc: an object which descriptors returns is documented
    • 02acad6 Merge pull request #7827 from tk0miya/7808_napoleon_nitpicky_warning
    • 6eb43ba Merge pull request #7823 from tk0miya/7821_overload_builtin_function
    • d77622b Fix #7807: autodoc: wrong signature is shown for the function using contextma...
    • b3affa6 Fix autodoc: Show detailed warning when type_comment is mismatched (refs: #7807)
    • e983189 Update CHANGES
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump pytest-cov from 2.8.1 to 2.10.0

    Bump pytest-cov from 2.8.1 to 2.10.0

    Bumps pytest-cov from 2.8.1 to 2.10.0.

    Changelog

    Sourced from pytest-cov's changelog.

    2.10.0 (2020-06-12)

    • Improved the --no-cov warning. Now it's only shown if --no-cov is present before --cov.
    • Removed legacy pytest support. Changed setup.py so that pytest>=4.6 is required.

    2.9.0 (2020-05-22)

    • Fixed RemovedInPytest4Warning when using Pytest 3.10. Contributed by Michael Manganiello in #354.
    • Made pytest startup faster when plugin not active by lazy-importing. Contributed by Anders Hovmöller in #339.
    • Various CI improvements. Contributed by Daniel Hahler in #363 and #364.
    • Various Python support updates (drop EOL 3.4, test against 3.8 final). Contributed by Hugo van Kemenade in #336 and #367.
    • Changed --cov-append to always enable data_suffix (a coverage setting). Contributed by Harm Geerts in #387.
    • Changed --cov-append to handle loading previous data better (fixes various path aliasing issues).
    • Various other testing improvements, github issue templates, example updates.
    • Fixed internal failures that are caused by tests that change the current working directory by ensuring a consistent working directory when coverage is called. See #306 and coveragepy#881
    Commits
    • 694f7fd Bump version: 2.9.0 → 2.10.0
    • 4cbd3bb Update changelog.
    • 45731f3 Rework assertion to work on old pytest.
    • 1689c9a Implement better --no-cov warning: only do it if --no-cov is present before -...
    • c5623ec Bump version: 2.8.1 → 2.9.0
    • cd6ca2e Update changelog.
    • daacd76 Skip horrendous breakage on pypy and windows.
    • b1ac198 More blissful ignorance (windows doesn't allow deleting while in cwd use).
    • 2612d2c Make test portable.
    • fa4bb12 Remove unused var.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump flake8 from 3.7.9 to 3.8.3

    Bump flake8 from 3.7.9 to 3.8.3

    Bumps flake8 from 3.7.9 to 3.8.3.

    Commits
    • 181bb46 Release 3.8.3
    • 3d68da9 Merge branch 'doctests-flag-desc' into 'master'
    • e817c63 Help clarify the option behaviour
    • b6d3fca Merge branch 'issues/665' into 'master'
    • 9b8f908 fix JobsArgument --help output
    • 94304de Merge branch 'issue-662' into 'master'
    • a68d4d0 processor: Catch SyntaxError also when generating tokens for a file
    • 4071645 Release 3.8.2
    • b9fe4d6 Merge branch 'extend_exclude_is_files' into 'master'
    • 31c2f9f treat --extend-exclude as a file list
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump pytest-mock from 1.13.0 to 3.1.1

    Bump pytest-mock from 1.13.0 to 3.1.1

    Bumps pytest-mock from 1.13.0 to 3.1.1.

    Release notes

    Sourced from pytest-mock's releases.

    3.1.0 (2020-04-18)

    • New mocker fixtures added that allow using mocking functionality in other scopes:

      • class_mocker
      • module_mocker
      • package_mocker
      • session_mocker

      Added by @scorphus in #182.

    3.0.0 (2020-03-31)

    • Python 2.7 and 3.4 are no longer supported. Users using pip 9 or later will install a compatible version automatically.
    • mocker.spy now also works with async def functions (#179). Thanks @frankie567 for the PR!

    2.0.0 (2020-01-04)

    Breaking Changes

    • mocker.spy attributes for tracking returned values and raised exceptions of its spied functions are now called spy_return and spy_exception, instead of reusing the existing MagicMock attributes return_value and side_effect.

      Version 1.13 introduced a serious regression: after a spied function using mocker.spy raises an exception, further calls to the spy will not call the spied function, always raising the first exception instead: assigning to side_effect causes unittest.mock to behave this way (#175).

    • The deprecated mock alias to the mocker fixture has finally been removed.

    Changelog

    Sourced from pytest-mock's changelog.

    3.1.1 (2020-05-31)

    • Fixed performance regression caused by the ValueError raised when mocker is used as context manager (#191).

    3.1.0 (2020-04-18)

    • New mocker fixtures added that allow using mocking functionality in other scopes:

      • class_mocker
      • module_mocker
      • package_mocker
      • session_mocker

      Added by @scorphus in #182.

    3.0.0 (2020-03-31)

    • Python 2.7 and 3.4 are no longer supported. Users using pip 9 or later will install a compatible version automatically.
    • mocker.spy now also works with async def functions (#179). Thanks @frankie567 for the PR!

    2.0.0 (2020-01-04)

    Breaking Changes

    • mocker.spy attributes for tracking returned values and raised exceptions of its spied functions are now called spy_return and spy_exception, instead of reusing the existing MagicMock attributes return_value and side_effect.

      Version 1.13 introduced a serious regression: after a spied function using mocker.spy raises an exception, further calls to the spy will not call the spied function, always raising the first exception instead: assigning to side_effect causes unittest.mock to behave this way (#175).

    • The deprecated mock alias to the mocker fixture has finally been removed.

    Commits
    • 55c11a9 Fix performance when raising ValueError when used as context-manager
    • e6a1d0a Update pre-commit config
    • 7cc9e5d Merge pull request #187 from daa/do-not-mark-wheel-as-universal
    • 5d532ff Do not mark wheel as universal (fixes #186)
    • 81a35cf Merge pull request #184 from nicoddemus/release-3.1.0
    • f1759fd Add CHANGELOG and README about other-scoped mocker fixtures
    • e43552a Merge pull request #182 from scorphus/scoped-mockers
    • 762f907 Add mocker for class, module, package and session scopes
    • d0cceef Merge pull request #181 from nicoddemus/release-3.0.0
    • 7849964 Update CHANGELOG for 3.0.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Report progress of long operations like  `git clone` or `git update`

    Report progress of long operations like `git clone` or `git update`

    It is convenient for used of the libvcs to (optionally) be able to report progress.

    It used to be reported with vcspull, which approach would you recommend to "restore" this behavior ?

    I was initially thinking about having a report_progress_callback parameter initially set to None

    opened by jcfr 3
  • build(deps): bump certifi from 2022.9.24 to 2022.12.7

    build(deps): bump certifi from 2022.9.24 to 2022.12.7

    Bumps certifi from 2022.9.24 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • GitSync: Remotes are broke in vcspull

    GitSync: Remotes are broke in vcspull

    vcspull 1.17.0, libvcs 0.19.0

    libvcs on  master ❯ git remote -v
    codeberg        git (fetch)
    codeberg        git (push)
    gitlab  git (fetch)
    gitlab  git (push)
    origin  git+ssh://[email protected]/vcs-python/libvcs.git (fetch)
    origin  git+ssh://[email protected]/vcs-python/libvcs.git (push)
    
    opened by tony 1
  • docs: Comparison with...

    docs: Comparison with...

    • subprocess

      Firstly, you can (and should!) see if plain old subprocess will do the trick. That saves you having to add an extra package.

      libvcs uses subprocess under the hood. Its only dependency is typing-extensions.

      It will:

      • Parse VCS URLs
      • Autocompletion
        • Commands (methods on libvcs.cmd.Git
        • Parameters
      • Pipes directly to your vcs binary, e.g. /usr/bin/git, so it'll be connected to whatever system git you have
    • sh

      Unlike subprocess, this one requires adding a package but has the benefit of an intuitive interface.

    • Dulwich

    • pygit2

      • LGPL: Do you have $300 / hour and years of life to debate licenses in a jurisdiction, simply because the wrong license was used? Have you really read the license? Do you think it conveys its meaning clearly, unambiguously, and all jurisdictions and parties will simply agree on interpretations?
    opened by tony 0
  • Allow injecting `Executor` class to control how commands are made / ran

    Allow injecting `Executor` class to control how commands are made / ran

    Default behavior is the same

    Executors:

    • Default: run() w/ a pass-through to show real time stderr of progress

    • subprocess.run pass-through

    • SubprocessCommand generates functions in dataclasses you can invoke later

      Rather than immediately running a SubprocessCommand, you can introspect, pickle it, adjust it, etc.

      Git(executor=SubprocessCommand)

    • Bring your own

      If you're not satisfied and don't think a PR will do, create your own executor class.

      If you do, you may want to either 1.) override the class's #run() or 2.) pass a run_fn to override it.

    package:cmd 
    opened by tony 0
Releases(v0.19.0)
  • v0.19.0(Oct 23, 2022)

    New features

    Commands

    via https://github.com/vcs-python/libvcs/pull/430

    Syncing

    via https://github.com/vcs-python/libvcs/pull/430

    Git, SVN, and Mercurial have moved to libvcs.cmd

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.18.1...v0.19.0

    Source code(tar.gz)
    Source code(zip)
  • v0.18.1(Oct 23, 2022)

  • v0.18.0(Oct 10, 2022)

    URLs: Weighting system for mathers

    By @tony in https://github.com/vcs-python/libvcs/pull/428

    • matchers now support weight, higher numbers means they'll be checked first. First match is the one picked by extract URL info
    • docs: Registry examples

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.17.0...v0.18.0

    Source code(tar.gz)
    Source code(zip)
  • v0.17.0(Sep 26, 2022)

    URLs

    • URL Detection via vcs-registry:

      All vcspull compatible URLs must have URLs detected by @tony in https://github.com/vcs-python/libvcs/pull/420

      Unblocks vcspull 1.13.x via https://github.com/vcs-python/vcspull/pull/373

    • URLs: Renaming by @tony in https://github.com/vcs-python/libvcs/pull/417

    • url: Improvements to parsing URLs by @tony in https://github.com/vcs-python/libvcs/pull/423

    Syncing

    • fix(git): Fix update_repo when there are untracked files (Take 2) by @jfpedroza in https://github.com/vcs-python/libvcs/pull/425

    Pytest plugin

    • feat(pytest_plugin): Allow passing init flags to repo fixtures by @tony in https://github.com/vcs-python/libvcs/pull/426

    Meta

    • build: Remove .coveragerc, use pyproject.toml by @tony in https://github.com/vcs-python/libvcs/pull/421

    New Contributors

    • @jfpedroza made their first contribution in https://github.com/vcs-python/libvcs/pull/425

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.16.5...v0.17.0

    Source code(tar.gz)
    Source code(zip)
  • v0.17.0a1(Sep 26, 2022)

    What's Changed

    • feat(pytest_plugin): Allow passing init flags to repo fixtures by @tony in https://github.com/vcs-python/libvcs/pull/426
    • fix(sync[git]): Fix update_repo when there are untracked files (Take 2) by @jfpedroza in https://github.com/vcs-python/libvcs/pull/425

    New Contributors

    • @jfpedroza made their first contribution in https://github.com/vcs-python/libvcs/pull/425

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.17.0a0...v0.17.0a1

    Source code(tar.gz)
    Source code(zip)
  • v0.17.0a0(Sep 25, 2022)

    New features

    • URLs: Added registry, match find which VCS a URL matches with (#420)

    • create_project: Learn to guess VCS from URL, if none provided (#420)

    Breaking changes

    URL renamings (#417):

    • Matcher -> RuleMatcherRegistry -> Rules

    • matches -> rule_map

    • default_patterns -> patterns

    • MATCHERS -> RULES

    Improvements

    • URLs (#423):

      • hg: Add HgBaseURLHgPipURL

      • svn: Add SvnBaseURLSvnPipURL

      • URLProtocol: Fix is_valid to use classmethod

      • All: Fix is_valid to use default of None to avoid implicitly filtering

      • Reduce duplicated code in methods by using super()

    Packaging

    • Migrate .coveragerc to pyproject.toml (#421)

    • Remove .tmuxp.before-script.sh (was a before_script in .tmuxp.yaml) that was unused.

    • Move conftest.py to root level

      • Can be excluded from wheel, included in sdist

      • Required to satisfy pytest's pytest_plugins only being in top-level confte conftest.py files since 4.0 (see notice)

      • Makes it possible to run pytest README.md with doctest plugin

    Automatically added

    • URLs: Renaming by @tony in https://github.com/vcs-python/libvcs/pull/417
    • build: Remove .coveragerc, use pyproject.toml by @tony in https://github.com/vcs-python/libvcs/pull/421
    • url: Improvements to parsing URLs by @tony in https://github.com/vcs-python/libvcs/pull/423
    • vcs-registry: All vcspull compatible URLs must have URLs detected by @tony in https://github.com/vcs-python/libvcs/pull/420

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.16.5...v0.17.0a0

    Source code(tar.gz)
    Source code(zip)
  • v0.16.5(Sep 22, 2022)

    Fix / compatibility improvement

    • Fix typings, use pytest public APIs by @tony in https://github.com/vcs-python/libvcs/pull/418

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.16.4...v0.16.5

    Source code(tar.gz)
    Source code(zip)
  • v0.16.4(Sep 18, 2022)

  • v0.16.3(Sep 18, 2022)

    What's Changed

    • QueryList: Test objects by @tony in https://github.com/vcs-python/libvcs/pull/414
    • QueryList: Better object handling by @tony in https://github.com/vcs-python/libvcs/pull/415

    Tests

    • Tests for pytest plugin by @tony in https://github.com/vcs-python/libvcs/pull/413

    CI

    • CI: Speed improvements by @tony in https://github.com/vcs-python/libvcs/pull/416

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.16.2...v0.16.3

    Source code(tar.gz)
    Source code(zip)
  • v0.16.3a0(Sep 18, 2022)

    Verify PyPI releases work after merge of CI: Speed improvements by @tony in https://github.com/vcs-python/libvcs/pull/416

    Full list of changes

    • Tests for pytest plugin by @tony in https://github.com/vcs-python/libvcs/pull/413
    • QueryList: Test objects by @tony in https://github.com/vcs-python/libvcs/pull/414
    • QueryList: Better object handling by @tony in https://github.com/vcs-python/libvcs/pull/415

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.16.2...v0.16.3a0

    Source code(tar.gz)
    Source code(zip)
  • v0.16.2(Sep 12, 2022)

    refactor(pytest_plugin): Remove faker dependency by @tony in https://github.com/vcs-python/libvcs/pull/412

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.16.1...v0.16.2

    Source code(tar.gz)
    Source code(zip)
  • v0.16.1(Sep 11, 2022)

    Temporarily adds faker as a dependency. Follow workaround in #411

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.16.0...v0.16.1

    Source code(tar.gz)
    Source code(zip)
  • v0.16.0(Sep 11, 2022)

    via #409

    libvcs now provides a test rig for local repositories. It automatically can provide clean local repositories and working copies for git, svn, and mercurial. They are automatically cleaned up after each test.

    It works by bootstrapping a temporary $HOME environment in a TmpPathFactory for automatic cleanup.

    import pathlib
    
    from libvcs.pytest_plugin import CreateProjectCallbackFixtureProtocol
    from libvcs.sync.git import GitSync
    
    
    def test_repo_git_remote_checkout(
        create_git_remote_repo: CreateProjectCallbackFixtureProtocol,
        tmp_path: pathlib.Path,
        projects_path: pathlib.Path,
    ) -> None:
        git_server = create_git_remote_repo()
        git_repo_checkout_dir = projects_path / "my_git_checkout"
        git_repo = GitSync(dir=str(git_repo_checkout_dir), url=f"file://{git_server!s}")
    
        git_repo.obtain()
        git_repo.update_repo()
    
        assert git_repo.get_revision() == "initial"
    
        assert git_repo_checkout_dir.exists()
        assert pathlib.Path(git_repo_checkout_dir / ".git").exists()
    

    Learn more on the docs at https://libvcs.git-pull.com/pytest-plugin.html

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.15.0...v0.16.0

    Source code(tar.gz)
    Source code(zip)
  • v0.15.0(Sep 11, 2022)

    Breaking changes

    • Moves (#408):

      • libvcs.parse -> libvcs.url

      • libvcs.projects -> libvcs.sync

    • Renames (#408):

      • BaseProject -> BaseSync

      • MercurialProject -> HgSync

      • SubversionProject -> SvnSync

      • GitProject -> GitSync

    • Deprecate custom functions in favor of standard library:

    Development

    Documentation

    • Render changelog in linkify_issues (~~#396~~, #403)

    • Fix Table of contents rendering with sphinx autodoc with sphinx_toctree_autodoc_fix (#403)

    • Deprecate sphinx-autoapi, per above fixing the table of contents issue (#403)

      This also removes the need to workaround autoapi bugs.

    PRs (automatically generated)

    • Cache poetry by @tony in https://github.com/vcs-python/libvcs/pull/394
    • refactor!: Deprecate which() in favor of shutil.which() by @tony in https://github.com/vcs-python/libvcs/pull/397
    • refactor!: Remove mkdir_p by @tony in https://github.com/vcs-python/libvcs/pull/399
    • build(deps): Add flake8-bugbear by @tony in https://github.com/vcs-python/libvcs/pull/401
    • build(deps): Add flake8-comprehensions by @tony in https://github.com/vcs-python/libvcs/pull/402
    • Add gp-libs by @tony in https://github.com/vcs-python/libvcs/pull/403
    • Try to use ToC gist with sphinx.ext.autoapi by @tony in https://github.com/vcs-python/libvcs/pull/400
    • Move to src/ layout by @tony in https://github.com/vcs-python/libvcs/pull/407
    • Rename packages by @tony in https://github.com/vcs-python/libvcs/pull/408

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0...v0.15.0

    Source code(tar.gz)
    Source code(zip)
  • v0.15.0a3(Sep 11, 2022)

    via #408

    Easier to type, less screen width, fits purpose better

    • Moves:

      • libvcs.parse -> libvcs.url
      • libvcs.projects -> libvcs.sync
    • Renames:

      • BaseProject -> BaseSync
      • MercurialProject -> HgSync
      • SubversionProject -> SvnSync
      • GitProject -> GitSync

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.15.0a2...v0.15.0a3

    Source code(tar.gz)
    Source code(zip)
  • v0.15.0a2(Sep 11, 2022)

    Move to src/ layout by @tony in https://github.com/vcs-python/libvcs/pull/407

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.15.0a1...v0.15.0a2

    Source code(tar.gz)
    Source code(zip)
  • v0.15.0a1(Sep 6, 2022)

  • v0.15.0a0(Aug 28, 2022)

    Breaking changes

    Remove custom internal functions in favor of standard library:

    • refactor!: Deprecate which() in favor of shutil.which() by @tony in #397
    • refactor!: Remove mkdir_p by @tony in #399

    CI / Internal

    • Cache poetry by @tony in https://github.com/vcs-python/libvcs/pull/394
    • docs: Move to sphinx-autoissues by @tony in https://github.com/vcs-python/libvcs/pull/396

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0...v0.15.0a0

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0(Jul 31, 2022)

    What's new

    Breaking changes

    • #391 Removed flat keyword argument for libvcs.projects.git.GitProject. This was unused and the equivalent can be retrieved via .to_dict() on GitRemote

    • #379 Support for git+git URLs removed. Pip removed these in 21.0 due to them being insecure [1]

    • #372 Typings moved from libvcs.types -> libvcs._internal.types

    • #377 Remove deprecated functions and exceptions

      • Removed libvcs.shortcuts

      • Removed libvcs.exc.InvalidPipURL

    Fixes

    Typings

    • Rename VcsLiteral -> VCSLiteral

      Backport from 0.13.4

    • create_project(): Add overloads that return the typed project (e.g. GitProject)

      Backport from 0.13.3

    Cleanup

    • #378 #380 Remove duplicate uses_netloc scheme for git+ssh (this was in cpython since 2.7 / 3.1 [2][3])

    Autogenerated

    • refactor(types): Move to _internals by @tony in https://github.com/vcs-python/libvcs/pull/372
    • Remove 0.14.x deprecations by @tony in https://github.com/vcs-python/libvcs/pull/377
    • chore(git): Remove uses_netloc for git+ssh, already in cpython by @tony in https://github.com/vcs-python/libvcs/pull/378
    • chore!(git): Remove insecure git+git support by @tony in https://github.com/vcs-python/libvcs/pull/379
    • chore(git): Remove another already supported netloc scheme ('git') by @tony in https://github.com/vcs-python/libvcs/pull/380
    • Parsing / detection and location by @tony in https://github.com/vcs-python/libvcs/pull/376
    • Parsing tests by @tony in https://github.com/vcs-python/libvcs/pull/381
    • Parser: Improvements, tests by @tony in https://github.com/vcs-python/libvcs/pull/384
    • Parser: Support explicit matchers, critical bug fixes by @tony in https://github.com/vcs-python/libvcs/pull/386
    • refactor!(projects[git]): Remove flat=True keyword from .remotes() by @tony in https://github.com/vcs-python/libvcs/pull/391
    • Strict mypy by @tony in https://github.com/vcs-python/libvcs/pull/390
    • ci(poetry): Poetry 1.1.12 -> 1.1.14 by @tony in https://github.com/vcs-python/libvcs/pull/393

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.13.6...v0.14.0

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a8(Jul 31, 2022)

    What's Changed

    • Strict mypy by @tony in https://github.com/vcs-python/libvcs/pull/390

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0a7...v0.14.0a8

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a7(Jul 31, 2022)

    What's Changed

    • refactor!(projects[git]): Remove flat=True keyword argument by @tony in https://github.com/vcs-python/libvcs/pull/391

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0a6...v0.14.0a7

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a6(Jul 10, 2022)

    Parser fixes (#386)

    • Git scp-style URLs: Fix detection detect of scp style URLs with .git prefixes
    • Fix critical bug where matchers were being applied as variable not annotations
    • Fix pattern_defaults
    • Base tests: Rename Location to URL
    • Tests and modules: Rename _location to _url

    Automated

    • Parser: Support explicit matchers, critical bug fixes by @tony in https://github.com/vcs-python/libvcs/pull/386

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0a5...v0.14.0a6

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a5(Jul 10, 2022)

  • v0.14.0a4(Jul 9, 2022)

    Subversion, Mercurial parsing improvements (#381):

    • Fixes
    • doctests
    • Add pytest modules

    Autogenerated

    • Parsing tests by @tony in https://github.com/vcs-python/libvcs/pull/381

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0a3...v0.14.0a4

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a3(Jul 9, 2022)

    What's new

    Parser: Experimental VCS URL parsing added (#376):

    VCS Parsers return dataclasses.dataclass() instances. The new tools support validation, parsing, mutating and exporting into URLs consumable by the VCS.

    Warning

    APIs are unstable and subject to break until we get it right.

    Detection can be extended through writing Matchers and adding them to the classes’ MatcherRegistry

    You can write your own VCS parser by implementing URLProtocol, but it would be most efficient if you studied the source of the git(1) parser to see how it’s done.

    Autogenerated

    • Parsing / detection and location by @tony in https://github.com/vcs-python/libvcs/pull/376

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0a2...v0.14.0a3

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a2(Jun 25, 2022)

    What's Changed

    • chore(git): Remove uses_netloc for git+ssh, already in cpython by @tony in https://github.com/vcs-python/libvcs/pull/378
    • chore!(git): Remove insecure git+git support by @tony in https://github.com/vcs-python/libvcs/pull/379
    • chore(git): Remove another already supported netloc scheme ('git') by @tony in https://github.com/vcs-python/libvcs/pull/380

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.14.0a1...v0.14.0a2

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a1(Jul 9, 2022)

    What's Changed

    • https://github.com/vcs-python/libvcs/pull/377 Removed libvcs.shortcuts

      • Removed libvcs.shortcuts.create_project_from_pip_url(): This will be replaced in future versions by https://github.com/vcs-python/libvcs/issues/376 / parsing utilities
      • Moved libvcs.shortcuts.create_project() to libvcs._internal.shortcuts.create_project()
    • Removed libvcs.exc.InvalidPipURL

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v1.14.0a0...v0.14.0a1

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0a0(Jul 9, 2022)

    What's Changed

    • refactor(types): Move to _internals by @tony in https://github.com/vcs-python/libvcs/pull/372

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.13.6...v0.14.0a0

    Source code(tar.gz)
    Source code(zip)
  • v0.13.4(Jun 18, 2022)

  • v0.13.3(Jun 18, 2022)

    libvcs.shortcuts.create_project: Add overloads that return the typed project (e.g. libvcs.projects.git.GitProject)

    Full Changelog: https://github.com/vcs-python/libvcs/compare/v0.13.2...v0.13.3

    Source code(tar.gz)
    Source code(zip)
Owner
python utilities for version control
permissively licensed. for the public good.
python utilities for version control
Navigate to your directory of choice the proceed as follows

Installation 🚀 Navigate to your directory of choice the proceed as follows; 1 .Clone the git repo and create a virtual environment Depending on your

Ondiek Elijah Ochieng 2 Jan 31, 2022
Python most simple|stupid programming language (MSPL)

Most Simple|Stupid Programming language. (MSPL) Stack - Based programming language "written in Python" Features: Interpretate code (Run). Generate gra

Kirill Zhosul 14 Nov 03, 2022
Mahadi-6 - This Is Bangladeshi All Sim 6 Digit Cloner Tools

BANGLADESHI ALL SIM 6 DIGIT CLONER TOOLS TOOLS $ apt update $ apt upgrade $ apt

MAHADI HASAN AFRIDI 2 Jan 23, 2022
Force you (or your user) annotate Python function type hints.

Must-typing Force you (or your user) annotate function type hints. Notice: It's more like a joke, use it carefully. If you call must_typing in your mo

Konge 13 Feb 19, 2022
Lightweight and Modern kernel for VK Bots

This is the kernel for creating VK Bots written in Python 3.9

Yrvijo 4 Nov 21, 2021
Registro Online (100% Python-Mysql)

Registro elettronico scritto in python, utilizzando database Mysql e Collegando Registro elettronico scritto in PHP

Sergiy Grimoldi 1 Dec 20, 2021
Stop ask your soraka to ult you, just ult yourself

Lollo's auto-ultimate script Are you tired of your low elo friend who can't ult you with soraka when you ask for it? Use Useless Support and just ult

9 Oct 20, 2022
A Python library that helps data scientists to infer causation rather than observing correlation.

A Python library that helps data scientists to infer causation rather than observing correlation.

QuantumBlack Labs 1.7k Jan 04, 2023
CDM Device Checker for python

CDM Device Checker for python

zackmark29 79 Dec 14, 2022
Live tracking, flight database and competition framework

SkyLines SkyLines is a web platform where pilots can share their flights with others after, or even during flight via live tracking. SkyLines is a sor

SkyLines 367 Dec 27, 2022
CNKD - Minimalistic Windows ransomware written in Python

CNKD Minimalistic Windows ransomware written in Python (Still a work in progress

Alex 2 May 27, 2022
Simple Calculator Mobile Apps

Simple Calculator Mobile Apps Screenshoot If you want to try it please click the link below to download, this application is 100% safe no virus. link

0 Sep 24, 2022
An evolutionary multi-agent platform based on mesa and NEAT

An evolutionary multi-agent platform based on mesa and NEAT

Valerio1988 6 Dec 04, 2022
A check numbers python module

Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License - https://github.com/FayasNoushad/Numbers/blob/main/LICENSE Deplo

Fayas Noushad 3 Nov 28, 2021
Request ID propagation for ASGI apps

ASGI Correlation ID middleware Middleware for loading and receiving correlation IDs from request HTTP headers, and making them available in applicatio

snok 170 Jan 02, 2023
A pet facts python api

Pet-Facts-API A pet facts python api Project Links API :- https://pet-facts-api.vercel.app Docs :- https://fayasnoushad.github.io/Pet-Facts-API

Fayas Noushad 3 Dec 18, 2021
A python script to get your activity

activities A python script to get your activity Not complete Requirements Python (=3.7) Pip (for python = 3.7) Git Pip packages psutil asyncio aioht

StarNumber 3 Nov 07, 2021
A simple python script that print the Mandelbrot set for every power of the formal formula.

Python Mandelbrot A simple python script that print the Mandelbrot set for every power of the formal formula.

Paride Giunta 2 Apr 15, 2022
Context-free grammar to Sublime-syntax file

Generate a sublime-syntax file from a non-left-recursive, follow-determined, context-free grammar

Haggai Nuchi 8 Nov 17, 2022
Get a link to the web version of a git-tracked file or directory

githyperlink Get a link to the web version of a git-tracked file or directory. Applies to GitHub and GitLab remotes (and maybe others but those are no

Tomas Fiers 2 Nov 08, 2022