forked from platformio/platformio-core
Drop "python-dateutil" dependency, implement light-weight "parse_date"
This commit is contained in:
@ -15,8 +15,8 @@
|
||||
# pylint: disable=too-many-branches, too-many-locals
|
||||
|
||||
import json
|
||||
import time
|
||||
from os.path import isdir, join
|
||||
from time import sleep
|
||||
from urllib import quote
|
||||
|
||||
import click
|
||||
@ -250,7 +250,7 @@ def lib_search(query, json_output, page, noninteractive, **filters):
|
||||
result['perpage'],
|
||||
fg="yellow")
|
||||
click.echo()
|
||||
sleep(5)
|
||||
time.sleep(5)
|
||||
elif not click.confirm("Show next libraries?"):
|
||||
break
|
||||
result = get_api_result(
|
||||
@ -322,7 +322,10 @@ def lib_show(library, json_output):
|
||||
click.echo(lib['description'])
|
||||
click.echo()
|
||||
|
||||
click.echo("Version: {name}, released {released}".format(**lib['version']))
|
||||
click.echo(
|
||||
"Version: %s, released %s" %
|
||||
(lib['version']['name'],
|
||||
time.strftime("%c", util.parse_date(lib['version']['released']))))
|
||||
click.echo("Manifest: %s" % lib['confurl'])
|
||||
for key in ("homepage", "repository", "license"):
|
||||
if key not in lib or not lib[key]:
|
||||
@ -357,10 +360,12 @@ def lib_show(library, json_output):
|
||||
blocks.append(("Compatible %s" % key, [i['title'] for i in lib[key]]))
|
||||
blocks.append(("Headers", lib['headers']))
|
||||
blocks.append(("Examples", lib['examples']))
|
||||
blocks.append(
|
||||
("Versions",
|
||||
["{name}, released {released}".format(**v) for v in lib['versions']]))
|
||||
blocks.append(("Downloads", [
|
||||
blocks.append(("Versions", [
|
||||
"%s, released %s" %
|
||||
(v['name'], time.strftime("%c", util.parse_date(v['released'])))
|
||||
for v in lib['versions']
|
||||
]))
|
||||
blocks.append(("Unique Downloads", [
|
||||
"Today: %s" % lib['dlstats']['day'],
|
||||
"Week: %s" % lib['dlstats']['week'],
|
||||
"Month: %s" % lib['dlstats']['month']
|
||||
@ -419,7 +424,9 @@ def lib_stats(json_output):
|
||||
click.echo((printitemdate_tpl
|
||||
if "date" in item else printitem_tpl).format(
|
||||
name=click.style(item['name'], fg="cyan"),
|
||||
date=item.get("date"),
|
||||
date=str(
|
||||
time.strftime("%c", util.parse_date(item['date']))
|
||||
if "date" in item else ""),
|
||||
url=click.style(
|
||||
"http://platformio.org/lib/show/%s/%s" %
|
||||
(item['id'], quote(item['name'])),
|
||||
|
@ -21,7 +21,6 @@ from glob import glob
|
||||
from os.path import isdir, join
|
||||
|
||||
import click
|
||||
from dateutil.parser import parse as parse_date
|
||||
|
||||
from platformio import app, commands, exception, util
|
||||
from platformio.managers.package import BasePkgManager
|
||||
@ -157,8 +156,8 @@ class LibraryManager(BasePkgManager):
|
||||
def max_satisfying_repo_version(self, versions, requirements=None):
|
||||
|
||||
def _cmp_dates(datestr1, datestr2):
|
||||
date1 = parse_date(datestr1)
|
||||
date2 = parse_date(datestr2)
|
||||
date1 = util.parse_date(datestr1)
|
||||
date2 = util.parse_date(datestr2)
|
||||
if date1 == date2:
|
||||
return 0
|
||||
return -1 if date1 < date2 else 1
|
||||
|
@ -22,13 +22,13 @@ import socket
|
||||
import stat
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
from functools import wraps
|
||||
from glob import glob
|
||||
from os.path import (abspath, basename, dirname, expanduser, isdir, isfile,
|
||||
join, normpath, splitdrive)
|
||||
from shutil import rmtree
|
||||
from threading import Thread
|
||||
from time import sleep, time
|
||||
|
||||
import click
|
||||
import requests
|
||||
@ -159,10 +159,10 @@ class throttle(object):
|
||||
|
||||
@wraps(fn)
|
||||
def wrapper(*args, **kwargs):
|
||||
diff = int(round((time() - self.last) * 1000))
|
||||
diff = int(round((time.time() - self.last) * 1000))
|
||||
if diff < self.threshhold:
|
||||
sleep((self.threshhold - diff) * 0.001)
|
||||
self.last = time()
|
||||
time.sleep((self.threshhold - diff) * 0.001)
|
||||
self.last = time.time()
|
||||
return fn(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
@ -541,7 +541,7 @@ def get_mdns_services():
|
||||
|
||||
items = []
|
||||
with mDNSListener() as mdns:
|
||||
sleep(3)
|
||||
time.sleep(3)
|
||||
for service in mdns.get_services():
|
||||
items.append({
|
||||
"type":
|
||||
@ -651,7 +651,7 @@ def get_api_result(url, params=None, data=None, auth=None, cache_valid=None):
|
||||
"[API] ConnectionError: {0} (incremented retry: max={1}, "
|
||||
"total={2})".format(e, max_retries, total),
|
||||
fg="yellow")
|
||||
sleep(2 * total)
|
||||
time.sleep(2 * total)
|
||||
|
||||
raise exception.APIRequestError(
|
||||
"Could not connect to PlatformIO API Service. "
|
||||
@ -737,6 +737,12 @@ def items_in_list(needle, haystack):
|
||||
return set(needle) & set(haystack)
|
||||
|
||||
|
||||
def parse_date(datestr):
|
||||
if "T" in datestr and "Z" in datestr:
|
||||
return time.strptime(datestr, "%Y-%m-%dT%H:%M:%SZ")
|
||||
return time.strptime(datestr)
|
||||
|
||||
|
||||
def rmtree_(path):
|
||||
|
||||
def _onerror(_, name, __):
|
||||
|
Reference in New Issue
Block a user