Sha256: 02a8ad6141a5d4beb243e29345dce6023aaab366e45e1bb54212447667898cab

Contents?: true

Size: 956 Bytes

Versions: 9

Compression:

Stored size: 956 Bytes

Contents

require 'json'
require 'httparty'

module LicenseFinder
  class Pip < PackageManager
    def current_packages
      pip_output.map do |name, version, children, location|
        PipPackage.new(
          name,
          version,
          pypi_def(name, version),
          logger: logger,
          children: children,
          install_path: Pathname(location).join(name),
        )
      end
    end

    private

    def package_path
      project_path.join('requirements.txt')
    end

    def pip_output
      output = `#{LicenseFinder::BIN_PATH.join("license_finder_pip.py")}`
      JSON(output).map do |package|
        package.values_at(*%w[name version dependencies location])
      end
    end

    def pypi_def(name, version)
      response = HTTParty.get("https://pypi.python.org/pypi/#{name}/#{version}/json")
      if response.code == 200
        JSON.parse(response.body).fetch("info", {})
      else
        {}
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
license_finder-2.1.0.rc6 lib/license_finder/package_managers/pip.rb
license_finder-2.1.0.rc5 lib/license_finder/package_managers/pip.rb
license_finder-2.1.0.rc4 lib/license_finder/package_managers/pip.rb
license_finder-2.1.0.rc3 lib/license_finder/package_managers/pip.rb
license_finder-2.1.0.rc2 lib/license_finder/package_managers/pip.rb
license_finder-2.1.0.rc1 lib/license_finder/package_managers/pip.rb
license_finder-2.0.4 lib/license_finder/package_managers/pip.rb
license_finder-2.0.3 lib/license_finder/package_managers/pip.rb
license_finder-2.0.2 lib/license_finder/package_managers/pip.rb