The Official Dropbox API V2 SDK for Python

Overview
https://cfl.dropboxstatic.com/static/images/sdk/python_banner.png

The offical Dropbox SDK for Python.

Documentation can be found on Read The Docs.

Installation

Create an app via the Developer Console.

Install via pip:

$ pip install dropbox

Install from source:

$ git clone git://github.com/dropbox/dropbox-sdk-python.git
$ cd dropbox-sdk-python
$ python setup.py install

After installation, follow one of our Examples or read the documentation on Read The Docs.

You can also view our OAuth Guide.

Examples

We provide Examples to help get you started with a lot of the basic functionality in the SDK.

  • OAuth
  • Other Examples
    • Updown - Sample application that uploads the contents of your Downloads folder to Dropbox.
    • Backup and Restore - Sample application that shows how you can backup a file and restore previous versions if the file was modified/corrupted in any way.

Getting Help

If you find a bug, please see CONTRIBUTING.md for information on how to report it.

If you need help that is not specific to this SDK, please reach out to Dropbox Support.

License

This SDK is distributed under the MIT license, please see LICENSE for more information.

Comments
  • Internal Server error when using files_move and files_copy

    Internal Server error when using files_move and files_copy

    Hi, I'm receiving an InternalServerError everytime I call files_move or files_copy. I'm currently working around the issue from downloading and re-uploading each file instead. Here is my traceback

    File "C:\Python27\lib\custom\dropbox_backup.py", line 69, in move_sequential_files self.dropbox.rename(file_path, this_path) File "C:\Python27\lib\custom\dropbox\dropbox_wrapper.py", line 113, in rename self.client.files_move(old_path, new_path) File "C:\Python27\lib\site-packages\dropbox\base.py", line 544, in files_move None) File "C:\Python27\lib\site-packages\dropbox\dropbox.py", line 175, in request request_binary) File "C:\Python27\lib\site-packages\dropbox\dropbox.py", line 256, in request_json_string_with_retry request_binary) File "C:\Python27\lib\site-packages\dropbox\dropbox.py", line 320, in request_json_string raise InternalServerError(r.status_code, r.text) InternalServerError

    opened by kg-2 20
  • Add ca_certs argument for oauth and dropbox client

    Add ca_certs argument for oauth and dropbox client

    This change adds ca_certs str argument for oauth and dropbox client classes. It may be used with applications that packed into executable archives (like python par or py2exe). It also may be useful with some security related scenarios.

    Checklist

    General Contributing

    • [x] Have you read the Code of Conduct and signed the CLA?

    Is This a Code Change?

    • [x] Non-code related change (markdown/git settings etc)
    • [x] SDK Code Change
    • [x] Example/Test Code Change

    Validation

    • [x] Does tox pass?
    • [x] Do the tests pass? (no integration tests)
    opened by stanislau-arkhipenka 16
  • dbx.files_upload_session_append_v2 Is it a random server been connected?

    dbx.files_upload_session_append_v2 Is it a random server been connected?

    Hello,

    I'm use dbx.files_upload_session_append_v2 to upload large file But the speed is very unstable. I used 30MB as CHUNK_SIZE. My server has a 1Gbps internet and very idle. so I suspect it is sometimes connected to a bad dropbox server node or a very high load dropbox server node.

    I checked the sdk source code and wanted to find out the server address of each connection to it into dbx.files_upload_session_append_v2. No solution found at this time

    uploading: 1 of media/m002.mp4
    uploaded: 31457280 of media/m002.mp4 used time 6.745985269546509
    uploading: 31457280 of media/m002.mp4
    uploaded: 62914560 of media/m002.mp4 used time 3.0077970027923584
    uploading: 62914560 of media/m002.mp4
    uploaded: 94371840 of media/m002.mp4 used time 2.6795079708099365
    uploading: 94371840 of media/m002.mp4
    uploaded: 125829120 of media/m002.mp4 used time 2.5502266883850098
    uploading: 125829120 of media/m002.mp4
    uploaded: 157286400 of media/m002.mp4 used time 30.76577353477478
    uploading: 157286400 of media/m002.mp4
    uploaded: 188743680 of media/m002.mp4 used time 4.496345520019531
    uploading: 188743680 of media/m002.mp4
    uploaded: 220200960 of media/m002.mp4 used time 2.933668375015259
    uploading: 220200960 of media/m002.mp4
    uploaded: 251658240 of media/m002.mp4 used time 2.999969959259033
    uploading: 251658240 of media/m002.mp4
    uploaded: 283115520 of media/m002.mp4 used time 39.48408651351929
    uploading: 283115520 of media/m002.mp4
    uploaded: 314572800 of media/m002.mp4 used time 6.2456958293914795
    uploading: 314572800 of media/m002.mp4
    uploaded: 346030080 of media/m002.mp4 used time 3.3357770442962646
    uploading: 346030080 of media/m002.mp4
    uploaded: 377487360 of media/m002.mp4 used time 2.5063118934631348
    uploading: 377487360 of media/m002.mp4
    
    opened by louishot 16
  • Handle Half-open TCP sockets

    Handle Half-open TCP sockets

    If the host machine that the Dropbox client SDK is running on misses a FIN packet while it's waiting for a response from the server it will hang forever by default. This can happen if an intermediate router transiently goes down, or if the host is suspended via ACPI power management. This problem is common and widespread and documented here:

    https://en.wikipedia.org/wiki/TCP_half-open#RFC_793

    A thorough description of the problem can be found here:

    http://blog.stephencleary.com/2009/05/detection-of-half-open-dropped.html

    This change makes all HTTP API requests instead use a default timeout of 30 seconds instead of unconditionally blocking forever. It adds a special case for files_list_folder_longpoll which may have a user-defined timeout.

    opened by rianhunter 15
  • Error when importing module with python 2.7

    Error when importing module with python 2.7

    I've just installed version 7.1.1 from pip. When my script tries to import dropbox I end up with the following error:

    Traceback (most recent call last):
      File "dropbox_backup.py", line 4, in <module>
        import dropbox
      File "/home/ianwscott/lib/python2.7/dropbox/__init__.py", line 3, in <module>
        from .dropbox import __version__, Dropbox, DropboxTeam, create_session
      File "/home/ianwscott/lib/python2.7/dropbox/dropbox.py", line 34, in <module>
        from .session import pinned_session
      File "/home/ianwscott/lib/python2.7/dropbox/session.py", line 44, in <module>
        from . import rest
      File "/home/ianwscott/lib/python2.7/dropbox/rest.py", line 29, in <module>
        if six.PY3:
    AttributeError: 'module' object has no attribute 'PY3'
    
    

    I tried upgrading the six module, but I'm being told that the module is already up-to-date (version 1.10.0). So why is dropbox raising the error?

    I'm working on a server running CentOS 6.8. I don't have root access, since it's a shared server, which is why I'm installing the modules locally.

    opened by monotasker 13
  • Decoding issue with utf-8

    Decoding issue with utf-8

    As I can see in dropbox/dropbox.py, line 393 and so on, you always decode the resp using utf-8 which I don't think it works properly in case the user has a non-utf8 file name.

    Should we use chardet to decode the resp to reduce error?

    opened by tranvictor 13
  • Bad Request for url: https://www.dropbox.com/1/oauth2/token

    Bad Request for url: https://www.dropbox.com/1/oauth2/token

    After issue #31 was solved, I get the following error when running the example-code from the docs with version 3.42:

    Traceback (most recent call last):
      File "test.py", line 15, in <module>
        access_token, user_id = auth_flow.finish(auth_code)
      File "/usr/local/lib/python2.7/dist-packages/dropbox/oauth.py", line 178, in finish
        return self._finish(code, None)
      File "/usr/local/lib/python2.7/dist-packages/dropbox/oauth.py", line 60, in _finish
        resp.raise_for_status()
      File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 837, in raise_for_status
        raise HTTPError(http_error_msg, response=self)
    HTTPError: 400 Client Error: Bad Request for url: https://www.dropbox.com/1/oauth2/token
    
    opened by andyCapone 13
  • TypeError: float() argument must be a string or a number, not 'Timeout'  for python3.6

    TypeError: float() argument must be a string or a number, not 'Timeout' for python3.6

    $ git clone git://github.com/dropbox/dropbox-sdk-python.git
    $ cd dropbox-sdk-python
    $ python setup.py install
    >>> import dropbox
    >>> dbx = dropbox.Dropbox("YOUR_ACCESS_TOKEN")
    >>> dbx.users_get_current_account()
    Traceback (most recent call last):
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/urllib3-1.21.1-py3.6.egg/urllib3/util/timeout.py", line 124, in _validate_timeout
        float(value)
    TypeError: float() argument must be a string or a number, not 'Timeout'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/debian8/dropbox-sdk-python/dropbox/base.py", line 3277, in users_get_current_account
        None,
      File "/home/debian8/dropbox-sdk-python/dropbox/dropbox.py", line 234, in request
        timeout=timeout)
      File "/home/debian8/dropbox-sdk-python/dropbox/dropbox.py", line 325, in request_json_string_with_retry
        timeout=timeout)
      File "/home/debian8/dropbox-sdk-python/dropbox/dropbox.py", line 409, in request_json_string
        timeout=timeout,
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/requests/sessions.py", line 565, in post
        return self.request('POST', url, data=data, json=json, **kwargs)
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/requests/sessions.py", line 518, in request
        resp = self.send(prep, **send_kwargs)
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/requests/sessions.py", line 639, in send
        r = adapter.send(request, **kwargs)
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/requests/adapters.py", line 438, in send
        timeout=timeout
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/urllib3-1.21.1-py3.6.egg/urllib3/connectionpool.py", line 587, in urlopen
        timeout_obj = self._get_timeout(timeout)
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/urllib3-1.21.1-py3.6.egg/urllib3/connectionpool.py", line 302, in _get_timeout
        return Timeout.from_float(timeout)
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/urllib3-1.21.1-py3.6.egg/urllib3/util/timeout.py", line 154, in from_float
        return Timeout(read=timeout, connect=timeout)
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/urllib3-1.21.1-py3.6.egg/urllib3/util/timeout.py", line 94, in __init__
        self._connect = self._validate_timeout(connect, 'connect')
      File "/home/debian8/anaconda3/lib/python3.6/site-packages/urllib3-1.21.1-py3.6.egg/urllib3/util/timeout.py", line 127, in _validate_timeout
        "int, float or None." % (name, value))
    ValueError: Timeout value connect was Timeout(connect=30, read=30, total=None), but it must be an int, float or None.
    
    
    opened by yufeiluo 12
  • APIError Exceptions / Errors makes no sense

    APIError Exceptions / Errors makes no sense

    Sorry to raise this issue, but I've given them a good try, and still can't make sense of them. I've checked out your examples, and I've read your documentation: http://dropbox-sdk-python.readthedocs.org/en/master/moduledoc.html#dropbox.files.ListFolderError

    I think you need a lot more examples of usual errors that might crop up whilst using your API.

    Since I'm here anyway, can anyone point me in the right direction on how to handle the following scenario: I want to check if a folder exists, and if it is not found, I want to create that folder.

    Other than that, its pretty good stuff!

    opened by skela 10
  • Field is_emm_managed of password login details is always expected, but can be missing.

    Field is_emm_managed of password login details is always expected, but can be missing.

    I am using the team_log_get_events and team_log_get_events_continue APIs to retrieve user activity for a Dropbox account. I seem to be able to retrieve most events fine, but I get a validation error from the library for login success events and receive this error:

    dropbox.stone_validators.ValidationError: events.details.password_login_success_details: missing required field 'is_emm_managed'
    

    From http://dropbox-sdk-python.readthedocs.io/en/latest/moduledoc.html#dropbox.team_log.DeviceLogInfo.is_emm_managed, it seems as if this field is normally expected, but could be missing.

    Perhaps this validation constraint needs to be relaxed?

    opened by readshaw 8
  • Wrong content-type returned by files_list_folder_longpoll,

    Wrong content-type returned by files_list_folder_longpoll, "text/plain" instead of "application/json"

    The following sample code:

    #!/usr/bin/python
    import dropbox, os
    dbx = dropbox.Dropbox(os.environ['DROPBOX_TOKEN'])
    root = dbx.files_list_folder('')
    print dbx.files_list_folder_longpoll(root.cursor, timeout=30)
    

    returns:

    Traceback (most recent call last):
      File "longpoll_test.py", line 7, in <module>
        print dbx.files_list_folder_longpoll(root.cursor, timeout=30)
      File "/home/rrerolle/Workspace/Code/rembox/venv/local/lib/python2.7/site-packages/dropbox/base.py", line 89, in files_list_folder_longpoll
        None)
      File "/home/rrerolle/Workspace/Code/rembox/venv/local/lib/python2.7/site-packages/dropbox/dropbox.py", line 175, in request
        request_binary)
      File "/home/rrerolle/Workspace/Code/rembox/venv/local/lib/python2.7/site-packages/dropbox/dropbox.py", line 256, in request_json_string_with_retry
        request_binary)
      File "/home/rrerolle/Workspace/Code/rembox/venv/local/lib/python2.7/site-packages/dropbox/dropbox.py", line 337, in request_json_string
        r.headers.get('content-type'))
    AssertionError: Expected content-type to be application/json, got 'text/plain'
    

    It appears the request succeeds, but returns a "text/plain" content-type, while the dropbox v2 client explicitly expects "application/json", as demonstrated in https://github.com/dropbox/dropbox-sdk-python/blob/002e6df32a6c9446554f6f53b2510d284adc9943/dropbox/dropbox.py#L335-L337

    This is probably an overlook in the v2 API server itself so I'm not sure there is anything to do client wise. Still, for now, using it requires either catching the AssertionError, or running python with -O to disable the asserts.

    opened by rrerolle 8
  • Bump actions/setup-python from 2.2.2 to 4.4.0

    Bump actions/setup-python from 2.2.2 to 4.4.0

    Bumps actions/setup-python from 2.2.2 to 4.4.0.

    Release notes

    Sourced from actions/setup-python's releases.

    Add support to install multiple python versions

    In scope of this release we added support to install multiple python versions. For this you can try to use this snippet:

        - uses: actions/[email protected]
          with:
            python-version: |
                3.8
                3.9
                3.10
    

    Besides, we changed logic with throwing the error for GHES if cache is unavailable to warn (actions/setup-python#566).

    Improve error handling and messages

    In scope of this release we added improved error message to put operating system and its version in the logs (actions/setup-python#559). Besides, the release

    v4.3.0

    • Update @​actions/core to 1.10.0 version #517
    • Update @​actions/cache to 3.0.4 version #499
    • Only use github.token on github.com #443
    • Improvement of documentation #477 #479 #491 #492

    Add check-latest input and bug fixes

    In scope of this release we add the check-latest input. If check-latest is set to true, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, the version will then be downloaded from python-versions repository. By default check-latest is set to false. For PyPy it will to try to reach https://downloads.python.org/pypy/versions.json

    Example of usage:

    steps:
      - uses: actions/[email protected]
      - uses: actions/[email protected]
        with:
          python-version: '3.9'
          check-latest: true
      - run: python --version
    

    Besides, it includes such changes as

    v4.1.0

    In scope of this pull request we updated actions/cache package as the new version contains fixes for caching error handling. Moreover, we added a new input update-environment. This option allows to specify if the action shall update environment variables (default) or not.

    Update-environment input

    ... (truncated)

    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)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • Fix invalid specifier in `stone` requirement

    Fix invalid specifier in `stone` requirement

    As mentioned in https://github.com/pypa/pip-audit/issues/445#issuecomment-1363101453:

    PEP 440 doesn't say it directly, but the language implies that the .* is only valid on exact comparison operators (e.g. == and !=), nor ordered comparisons (e.g. >=).

    In particular, a comparison like >=3.5.* is redundant: it has the exact same meaning as >=3.5.

    This is causing pip-audit to fail, like so: https://github.com/frappe/frappe/actions/runs/3811860090/jobs/6484759800#step:4:183

    Checklist

    General Contributing

    • [x] Have you read the Code of Conduct and signed the CLA?

    Is This a Code Change?

    • [x] Non-code related change (markdown/git settings etc)
    • [ ] SDK Code Change
    • [ ] Example/Test Code Change

    Validation

    • [x] Does tox pass?
    • [x] Do the tests pass?
    opened by sagarvora 0
  • Bump peter-evans/create-pull-request from 3.8.2 to 4.2.3

    Bump peter-evans/create-pull-request from 3.8.2 to 4.2.3

    Bumps peter-evans/create-pull-request from 3.8.2 to 4.2.3.

    Release notes

    Sourced from peter-evans/create-pull-request's releases.

    Create Pull Request v4.2.3

    What's Changed

    Full Changelog: https://github.com/peter-evans/create-pull-request/compare/v4.2.2...v4.2.3

    Create Pull Request v4.2.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/peter-evans/create-pull-request/compare/v4.2.1...v4.2.2

    Create Pull Request v4.2.1

    What's Changed

    Full Changelog: https://github.com/peter-evans/create-pull-request/compare/v4.2.0...v4.2.1

    Create Pull Request v4.2.0

    ⚙️ Improves the proxy implementation to properly support the standard environment variables http_proxy, https_proxy and no_proxy

    What's Changed

    Full Changelog: https://github.com/peter-evans/create-pull-request/compare/v4.1.4...v4.2.0

    Create Pull Request v4.1.4

    ⚙️ Bumps @actions/core to transition away from deprecated runner commands.

    What's Changed

    Full Changelog: https://github.com/peter-evans/create-pull-request/compare/v4.1.3...v4.1.4

    Create Pull Request v4.1.3

    What's Changed

    ... (truncated)

    Commits
    • 2b011fa fix: add check for missing token input (#1324)
    • 331d02c fix: support github server url for pushing to fork (#1318)
    • d7db273 fix: handle update after force pushing base to a new commit (#1307)
    • ee93d78 test: set default branch to main (#1310)
    • 6c704eb docs: clarify limitations of push-to-fork with restricted token
    • 88bf0de docs: correct examples
    • b38e8b0 docs: replace set-output in example
    • b4d5173 feat: switch proxy implementation (#1269)
    • ad43dcc build(deps): bump @​actions/io from 1.1.1 to 1.1.2 (#1280)
    • c2f9cef build(deps): bump @​actions/exec from 1.1.0 to 1.1.1 (#1279)
    • 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)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • Update base.py

    Update base.py

    adding param explanations for files_upload

    Checklist

    General Contributing

    • [x] Have you read the Code of Conduct and signed the CLA?

    Is This a Code Change?

    • [x] Non-code related change (markdown/git settings etc)
    • [ ] SDK Code Change
    • [ ] Example/Test Code Change

    Validation

    • [x] Does tox pass?
    • [x] Do the tests pass?
    opened by alistvt 2
  • Bump codecov/codecov-action from 1.3.2 to 3.1.1

    Bump codecov/codecov-action from 1.3.2 to 3.1.1

    Bumps codecov/codecov-action from 1.3.2 to 3.1.1.

    Release notes

    Sourced from codecov/codecov-action's releases.

    3.1.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/codecov/codecov-action/compare/v3.1.0...v3.1.1

    v3.1.0

    3.1.0

    Features

    ... (truncated)

    Changelog

    Sourced from codecov/codecov-action's changelog.

    3.1.1

    Fixes

    • #661 Update deprecation warning
    • #593 Create codeql-analysis.yml
    • #712 README: fix typo
    • #725 fix: Remove a blank row
    • #726 Update README.md with correct badge version
    • #633 Create scorecards-analysis.yml
    • #747 fix: add more verbosity to validation
    • #750 Regenerate scorecards-analysis.yml
    • #774 Switch to v3
    • #783 Fix network entry in table
    • #791 Trim arguments after splitting them
    • #769 Plumb failCi into verification function.

    Dependencies

    • #713 build(deps-dev): bump typescript from 4.6.3 to 4.6.4
    • #714 build(deps): bump node-fetch from 3.2.3 to 3.2.4
    • #724 build(deps): bump github/codeql-action from 1 to 2
    • #717 build(deps-dev): bump @​types/jest from 27.4.1 to 27.5.0
    • #729 build(deps-dev): bump @​types/node from 17.0.25 to 17.0.33
    • #734 build(deps-dev): downgrade @​types/node to 16.11.35
    • #723 build(deps): bump actions/checkout from 2 to 3
    • #733 build(deps): bump @​actions/github from 5.0.1 to 5.0.3
    • #732 build(deps): bump @​actions/core from 1.6.0 to 1.8.2
    • #737 build(deps-dev): bump @​types/node from 16.11.35 to 16.11.36
    • #749 build(deps): bump ossf/scorecard-action from 1.0.1 to 1.1.0
    • #755 build(deps-dev): bump typescript from 4.6.4 to 4.7.3
    • #759 build(deps-dev): bump @​types/node from 16.11.36 to 16.11.39
    • #762 build(deps-dev): bump @​types/node from 16.11.39 to 16.11.40
    • #746 build(deps-dev): bump @​vercel/ncc from 0.33.4 to 0.34.0
    • #757 build(deps): bump ossf/scorecard-action from 1.1.0 to 1.1.1
    • #760 build(deps): bump openpgp from 5.2.1 to 5.3.0
    • #748 build(deps): bump actions/upload-artifact from 2.3.1 to 3.1.0
    • #766 build(deps-dev): bump typescript from 4.7.3 to 4.7.4
    • #799 build(deps): bump openpgp from 5.3.0 to 5.4.0
    • #798 build(deps): bump @​actions/core from 1.8.2 to 1.9.1

    3.1.0

    Features

    • #699 Incorporate xcode arguments for the Codecov uploader

    Dependencies

    • #694 build(deps-dev): bump @​vercel/ncc from 0.33.3 to 0.33.4
    • #696 build(deps-dev): bump @​types/node from 17.0.23 to 17.0.25
    • #698 build(deps-dev): bump jest-junit from 13.0.0 to 13.2.0

    3.0.0

    Breaking Changes

    • #689 Bump to node16 and small fixes

    ... (truncated)

    Commits
    • d9f34f8 release: update changelog and version to 3.1.1 (#828)
    • 0e9e7b4 Plumb failCi into verification function. (#769)
    • 7f20bd4 build(deps): bump @​actions/core from 1.8.2 to 1.9.1 (#798)
    • 13bc253 build(deps): bump openpgp from 5.3.0 to 5.4.0 (#799)
    • 5c0da1b Trim arguments after splitting them (#791)
    • 68d5f6d Fix network entry in table (#783)
    • 2a829b9 Switch to v3 (#774)
    • 8e09eaf build(deps-dev): bump typescript from 4.7.3 to 4.7.4 (#766)
    • 39e2229 build(deps): bump actions/upload-artifact from 2.3.1 to 3.1.0 (#748)
    • b2b7703 build(deps): bump openpgp from 5.2.1 to 5.3.0 (#760)
    • 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)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • RFE: drop use `six` module

    RFE: drop use `six` module

    Looks like dropbox is one of the only handfull modules whch still is using six

    [[email protected] dropbox-sdk-python-11.30.0]$ grep -rw six
    dropbox/dropbox_client.py:import six
    dropbox/dropbox_client.py:        assert isinstance(obj_result, six.string_types), \
    dropbox/dropbox_client.py:        if not isinstance(request_binary, (six.binary_type, type(None))):
    dropbox/oauth.py:import six
    dropbox/oauth.py:if six.PY3:
    dropbox/oauth.py:        if six.PY2 and isinstance(target, six.text_type):
    dropbox/oauth.py:        if isinstance(o, six.binary_type):
    dropbox/oauth.py:            if isinstance(o, six.text_type):
    dropbox/oauth.py:    utf8_params = {encode(k): encode(v) for k, v in six.iteritems(params)}
    example/updown.py:import six
    example/updown.py:            if not isinstance(name, six.text_type):
    requirements.txt:six >= 1.12.0
    setup.py:    'six >= 1.12.0',
    

    It would be good to rewrite thise parts to drop use six 😃

    enhancement 
    opened by kloczek 2
Releases(v11.36.0)
Crud-python-sqlite: used to manage telephone contacts through python and sqlite

crud-python-sqlite This program is used to manage telephone contacts through python and sqlite. Dependencicas python3 sqlite3 Installation Clone the r

Luis Negrón 0 Jan 24, 2022
Unofficial YooMoney API python library

API Yoomoney - unofficial python library This is an unofficial YooMoney API python library. Summary Introduction Features Installation Quick start Acc

Aleksey Korshuk 136 Dec 30, 2022
FTP Anonymous Login

FTPAnon FTP Anonymous Login Install git clone https://github.com/SiThuTuntimehacker/FTPAnon cd FTPAnon bash install.sh access ftp sever " ftpaccess.tx

SiThuTun 3 Mar 23, 2022
This project is based on discord.py and is meant to be a 'Quick Start Bot' to cut down on the time it takes to write complex discord bots.

This project is based on discord.py and is meant to be a 'Quick Start Bot' to cut down on the time it takes to write complex discord bots.

Alec Ibarra 1 Mar 03, 2022
Flaga ze Szturmu na AWS.

Witaj Jesteś na GitHub'ie i czytasz właśnie plik README.md który znajduje się wewnątrz repozytorium Flaga z 7 i 8 etapu Szturmu na AWS. W tym etapie w

9 May 16, 2022
A multipurpose bot designed to make Discord better for everyone, written in Python.

Hadum A multipurpose bot that makes Discord better for everyone Features A Fully Functional Moderation component: manage your staff, members and permi

1 Jan 25, 2022
Self-adjusting, auto-compounding multi-pair DCA crypto trading bot using Python, AWS Lambda & 3Commas API

Self-adjusting, auto-compounding multi-pair DCA crypto trading bot using Python, AWS Lambda & 3Commas API The following code describes how we can leve

Jozef Jaroščiak 21 Dec 07, 2022
This is my Discord-Bot named priamoryki-bot based on python.

This is my Discord-Bot named priamoryki-bot based on python. It's a public repository without private information, so you need to correct some code for everything to be working.

priamoryki 2 Dec 14, 2022
Discord Crypto Payment Cards Selfbot

A Discord selfbot that serves the purpose of displaying text and QR versions of your BTC, LTC & ETH payment information for easy and simple commercial or personal transactions.

2 Apr 12, 2022
Touca SDK for Python

Touca SDK For Python Touca helps you understand the true impact of your day to day code changes on the behavior and performance of your overall softwa

Touca 12 May 18, 2022
Automatic generation of crypto-arts based on image layers

NFT Generator Автоматическая генерация крипто-артов на основе слоев изображения. Установка pip3 install -r requirements.txt rm -rf result/* Как это ра

Zproger 31 Dec 29, 2022
HinamiRobot - Telegram Group Manager Bot Written In Python Using Pyrogram

✨ HINAMI CHAN ✨ Telegram Group Manager Bot Written In Python Using Pyrogram. Rea

DARK LEGEND088 2 Jan 27, 2022
Compares and analyzes GCP IAM roles.

gcp-iam-analyzer I wrote this to help in my day to day working in GCP. A lot of the time I am doing role comparisons to see which role has more permis

Jason Dyke 37 Dec 28, 2022
TwitterBot-ImageCollector - Twitter bot that collects images from likes saves the image

TwitterBot-ImageCollector Bot de Twitter que recolecta imagenes a partir de los

Gx3 Studios 4 Jun 01, 2022
Braje: a python based credit hacker tool. Hack unlimited RAJE LIKER app Credit

#ReCoded Evan Al Mahmud Irfan ✨ ථ BRAJE 1.0 AUTO LIKER, AUTO COMMENT AND AUTO FOLLOWER APP CREDIT HACKER TOOL About Braje: Braje is a python based cre

Evan Al Mahmud Irfan ථ 2 Dec 23, 2021
Seth Userbot with python

SETH-USERBOT DEPLOY TO HEROKU Group Support: String Session : Stay Support 🚀 ❁ LonamiWebs and Telethon © Credits ⚡ THANK YOU VERY MUCH FOR zeinzo Zei

seth 4 Jan 10, 2022
quote is a python wrapper for the Goodreads Quote API, powered by gazpacho.

About quote is a python wrapper for the Goodreads Quote API, powered by gazpacho.

Max Humber 11 Nov 10, 2022
Python Discord Server Nuker

Untitled Nuker Python Discord Server Nuker Features: Ban Everyone Kick Everyone Rename Everyone Spam To All Channels Delete All Channels Delete All Ro

22 Dec 22, 2022
Retrieves GitHub Stats via `git_api` and flask.

GitHub User Search Created using Python3 and git_api, coded by JBYT27. About This is a project I decided to make for Kajam, but I decided to choose a

an aspirin 4 May 11, 2022
Darkflame Universe Account Manager

Darkflame Universe Account Manager This is a quick and simple web application intended for account creation and management for a DLU instance created

31 Nov 29, 2022