Metadata-Version: 1.1
Name: artifactory
Version: 0.1.15
Summary: A Python to Artifactory interface
Home-page: http://github.com/parallels/artifactory
Author: Konstantin Nazarov
Author-email: knazarov@parallels.com
License: MIT License
Download-URL: http://github.com/parallels/artifactory
Description: Python interface library for Jfrog Artifactory
        ==============================================
        
        |Build Status|
        
        This module is intended to serve as a logical descendant of
        `pathlib <https://docs.python.org/3/library/pathlib.html>`__, a Python 3
        module for object-oriented path manipulations. As such, it implements
        everything as closely as possible to the origin with few exceptions,
        such as stat().
        
        Usage Examples
        ==============
        
        Walking Directory Tree
        ----------------------
        
        Getting directory listing:
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://repo.jfrog.org/artifactory/gradle-ivy-local")
            for p in path:
                print p
        
        Find all .gz files in current dir, recursively:
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://repo.jfrog.org/artifactory/distributions/org/")
        
            for p in path.glob("**/*.gz"):
                print p
        
        Downloading Artifacts
        ---------------------
        
        Download artifact to a local filesystem:
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://repo.jfrog.org/artifactory/distributions/org/apache/tomcat/apache-tomcat-7.0.11.tar.gz")
                
            with path.open() as fd:
                with open("tomcat.tar.gz", "wb") as out:
                    out.write(fd.read())
        
        Uploading Artifacts
        -------------------
        
        Deploy a regular file ``myapp-1.0.tar.gz``
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0")
            path.mkdir()
        
            path.deploy_file('./myapp-1.0.tar.gz')
        
        Deploy a debian package ``myapp-1.0.deb``
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://my-artifactory/artifactory/ubuntu-local/pool")
            path.deploy_deb('./myapp-1.0.deb', 
                            distribution='trusty',
                            component='main',
                            architecture='amd64')
        
        Authentication
        --------------
        
        To provide username and password to access restricted resources, you can
        pass ``auth`` parameter to ArtifactoryPath:
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://my-artifactory/artifactory/myrepo/restricted-path",
                auth=('admin', 'ilikerandompasswords'))
            path.touch()
        
        SSL Cert Verification Options
        -----------------------------
        
        See `Requests - SSL
        verification <http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-verification>`__
        for more details.
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0")
        
        ... is the same as
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0", 
                verify=True)
        
        Specify a local cert to use as client side certificate
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0",
                cert="/path_to_file/server.pem")
        
        Disable host cert verification
        
        ::
        
            from artifactory import ArtifactoryPath
            path = ArtifactoryPath(
                "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0",
                verify=False)
        
        | **Note:** If host cert verification is disabled urllib3 will throw a
          `InsecureRequestWarning <https://urllib3.readthedocs.org/en/latest/security.html#insecurerequestwarning>`__.
        | To disable these warning, one needs to call
          urllib3.disable\_warnings().
        
        ::
        
            import requests.packages.urllib3 as urllib3
            urllib3.disable_warnings()
        
        Global Configuration File
        -------------------------
        
        Artifactory Python module also has a way to specify all
        connection-related settings in a central file,
        ``~/.artifactory_python.cfg`` that is read upon the creation of first
        ``ArtifactoryPath`` object and is stored globally. For instance, you can
        specify per-instance settings of authentication tokens, so that you
        won't need to explicitly pass ``auth`` parameter to ``ArtifactoryPath``.
        
        Example:
        
        ::
        
            [http://artifactory-instance.com/artifactory]
            username = deployer
            password = ilikerandompasswords
            verify = false
        
            [another-artifactory-instance.com/artifactory]
            username = foo
            password = @dmin
            cert = ~/mycert
        
        Whether or not you specify ``http://`` or ``https://`` prefix is not
        essential. The module will first try to locate the best match and then
        try to match URLs without prefixes. So if in the config you specify
        ``https://my-instance.local`` and call ``ArtifactoryPath`` with
        ``http://my-instance.local``, it will still do the right thing.
        
        .. |Build Status| image:: https://travis-ci.org/Parallels/artifactory.svg?branch=develop
           :target: https://travis-ci.org/Parallels/artifactory
        
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Filesystems
