Skip to content
This repository was archived by the owner on Aug 28, 2020. It is now read-only.

Partially fixes #5 #163

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 26 additions & 80 deletions package_managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,57 +30,41 @@ def update_package_manager_data(self, package_manager_urls):
:returns: Returns the data object that was added to the DB
:rtype: Data object
"""
num_total_csharp_downloads = None
num_nodejs_monthly_downloads = None
num_php_downloads = None
num_python_downloads = None
num_ruby_downloads = None
num_python_http_client_downloads = None
num_python_open_source_library_data_collector_downloads = None
num_ruby_http_client_downloads = None
num_csharp_http_client_downloads = None
num_php_http_client_downloads = None
num_node_http_client_downloads = None

num = {x: None for x in dir(PackageManagerData) if 'download' in x}

for url in package_manager_urls:
if 'https://www.nuget.org/packages/SendGrid' == url:
num_total_csharp_downloads = self.csharp_downloads(url)
num['total_csharp_downloads'] = self.csharp_downloads(url)
if 'https://www.nuget.org/packages/SendGrid.CSharp.HTTP.Client' \
== url:
num_csharp_http_client_downloads = self.csharp_downloads(url)
num['csharp_http_client_downloads'] = \
self.csharp_downloads(url)
if 'https://www.npmjs.com/package/sendgrid' in url:
if 'https://www.npmjs.com/package/sendgrid-rest' != url:
num_nodejs_monthly_downloads = self.nodejs_downloads(url)
num['nodejs_monthly_downloads'] = \
self.nodejs_downloads(url)
if 'https://www.npmjs.com/package/sendgrid-rest' in url:
num_node_http_client_downloads = self.nodejs_downloads(url)
num['node_http_client_downloads'] = self.nodejs_downloads(url)
if 'https://packagist.org/packages/sendgrid/sendgrid' == url:
num_php_downloads = self.php_downloads(url)
num['php_downloads'] = self.php_downloads(url)
if 'https://packagist.org/packages/sendgrid/php-http-client' == \
url:
num_php_http_client_downloads = self.php_downloads(url)
num['php_http_client_downloads'] = self.php_downloads(url)
if 'pypi' in url and 'sendgrid' in url:
num_python_downloads = self.python_downloads(url)
num['python_downloads'] = self.python_downloads(url)
if 'pypi' in url and 'python_http_client' in url:
num_python_http_client_downloads = self.python_downloads(url)
num['python_http_client_downloads'] = \
self.python_downloads(url)
if 'pypi' in url and 'open_source_library_data_collector' in url:
num_python_open_source_library_data_collector_downloads = \
num['python_open_source_library_data_collector_downloads'] = \
self.python_downloads(url)
if 'rubygems' in url and 'sendgrid' in url:
num_ruby_downloads = self.ruby_downloads(url)
num['ruby_downloads'] = self.ruby_downloads(url)
if 'rubygems' in url and 'http' in url:
num_ruby_http_client_downloads = self.ruby_downloads(url)

return self.update_db(
num_total_csharp_downloads,
num_nodejs_monthly_downloads,
num_php_downloads,
num_python_downloads,
num_ruby_downloads,
num_python_http_client_downloads,
num_python_open_source_library_data_collector_downloads,
num_ruby_http_client_downloads,
num_csharp_http_client_downloads,
num_php_http_client_downloads,
num_node_http_client_downloads)
num['ruby_http_client_downloads'] = self.ruby_downloads(url)

return self.update_db(num)

def csharp_downloads(self, url):
"""Gets library download data from nuget.org
Expand Down Expand Up @@ -180,58 +164,20 @@ def ruby_downloads(self, url):
num_ruby_downloads = nodes[0].replace(',', '')
return num_ruby_downloads

def update_db(
self,
num_total_csharp_downloads,
num_nodejs_monthly_downloads,
num_php_downloads,
num_python_downloads,
num_ruby_downloads,
num_python_http_client_downloads,
num_python_open_source_library_data_collector_downloads,
num_ruby_http_client_downloads,
num_csharp_http_client_downloads,
num_php_http_client_downloads,
num_node_http_client_downloads
):
parms = [
num_total_csharp_downloads,
num_nodejs_monthly_downloads,
num_php_downloads,
num_python_downloads,
num_ruby_downloads,
num_python_http_client_downloads,
num_python_open_source_library_data_collector_downloads,
num_ruby_http_client_downloads,
num_csharp_http_client_downloads,
num_php_http_client_downloads,
num_node_http_client_downloads]

for parm in parms:
parm = None if parm is None else int(parm)
def update_db(self, download_nums):
for k, v in download_nums.items():
download_nums[k] = None if v is None else int(v)

"""Update the DB with the package manager data

:param num_total_csharp_downloads: # of total downloads
:param num_nodejs_monthly_downloads: # of downloads in the last month
:param num_php_downloads: # of total downloads
:param num_python_downloads: # of downloads in the last month
:param num_ruby_downloads: # of total downloads
:type num_total_csharp_downloads: Integer
:type num_nodejs_monthly_downloads: Integer
:type num_php_downloads: Integer
:type num_python_downloads: Integer
:type num_ruby_downloads: Integer
:param download_nums: # of total downloads per package
:type download_nums Dict[str, Integer]

:returns: Returns the data object that was added to the DB
:rtype: Data object
"""
packagedata = PackageManagerData(
date_updated=datetime.datetime.now(),
csharp_downloads=num_total_csharp_downloads,
nodejs_downloads=num_nodejs_monthly_downloads,
ruby_downloads=num_ruby_downloads,
csharp_http_client_downloads=num_csharp_http_client_downloads,
ruby_http_client_downloads=num_ruby_http_client_downloads,
node_http_client_downloads=num_node_http_client_downloads
**download_nums
)
return self.db.add_data(packagedata)