Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/reports/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,7 +32,7 @@ def get_urls(self):

# Add in each model's views, but without the app label
valid_app_labels = set()
for model, model_admin in self._registry.iteritems():
for model, model_admin in self._registry.items():
urlpatterns.append(
url(r'^%s/' % model._meta.model_name,
include(model_admin.urls))
Expand Down
2 changes: 1 addition & 1 deletion src/reports/jsonfield/__init__.py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
from fields import JSONField, JSONCharField
from .fields import JSONField, JSONCharField
4 changes: 2 additions & 2 deletions src/reports/repo/admin.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -443,9 +443,9 @@ def get_urls(self):
return my_urls + urls

def abi_export(self, request, pk):
print pk
print(pk)
abi = ABI.objects.get(pk=pk)
printabi
print(abi)
return HttpResponse(
json.dumps(abi.listing),
content_type='application/json',
Expand Down
15 changes: 11 additions & 4 deletions src/reports/repo/misc.py
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
import datetime
from collections import defaultdict, OrderedDict

import rpmUtils.miscutils
import yum
#import rpmUtils.miscutils


def _get_pkg_meta(pkg, platforms, repo_pkg_meta):
Expand DownExpand Up@@ -64,14 +63,22 @@ def _get_chlog_ver(item):
for item in chlog:
tm = datetime.date.fromtimestamp(int(item[0]))
flat.append("* %s %s" % (
tm.strftime("%a %b %d %Y"), yum.misc.to_unicode(item[1]))
tm.strftime("%a %b %d %Y"), _to_unicode(item[1]))
)
flat.extend([yum.misc.to_unicode(line)
flat.extend([_to_unicode(line)
for line in item[2].splitlines()])
flat.append("")
return flat


# Lifted from yum
def _to_unicode(obj, encoding='utf-8', errors='replace'):
if isinstance(obj, basestring):
if not isinstance(obj, unicode):
obj = unicode(obj, encoding, errors)
return obj


# recursive function that given a list of repos,
# will find their common container repos set containers is passed by reference
def _find_containers(repos, containers):
Expand Down
24 changes: 12 additions & 12 deletions src/reports/repo/models.py
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
import datetime
import os
import urlparse
import urllib.parse
from collections import defaultdict
from copy import copy

import requests
import yum
#import yum
from django.conf import settings
from django.contrib.auth.backends import RemoteUserBackend
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from rpmUtils.miscutils import splitFilename
#from rpmUtils.miscutils import splitFilename

import buildservice
import rpmmd
#import buildservice
import repo.rpmmd

from .misc import (
_find_containers, _fmt_chlog, _gen_abi, _get_latest_repo_pkg_meta,
Expand DownExpand Up@@ -272,7 +272,7 @@ def yumrepos(self):
for arch in archs:
yumrepoid = self.yumrepoid
yumrepourl = self.yumrepourl.replace("@ARCH@", arch)
printyumrepourl
print(yumrepourl)
cachedir = os.path.join(
yum.misc.getCacheDir(tmpdir=settings.YUM_CACHE_DIR),
self.yumrepoid, str(arch),
Expand All@@ -282,8 +282,8 @@ def yumrepos(self):
yumrepoid, yumrepourl, cachedir=cachedir
)
self._yumrepos.append(yumrepo)
except requests.exceptions.RequestException, exc:
printexc
except requests.exceptions.RequestException as exc:
print(exc)

return self._yumrepos

Expand DownExpand Up@@ -510,7 +510,7 @@ def link_to_repos(self):
_repos.add(os.path.dirname(url))

for urlline in _repos:
printurlline
print(urlline)
for arch in archs:
urlline = urlline.replace(arch, '@ARCH@')
parts = urlparse.urlsplit(urlline)
Expand DownExpand Up@@ -538,9 +538,9 @@ def link_to_repos(self):
split_path = path.split("/")

while not found and split_path:
printpointer.name
printrepo_split_path
printsplit_path
print(pointer.name)
print(repo_split_path)
print(split_path)
if split_path == repo_split_path:
found_repos.add(repo)
found = True
Expand Down
30 changes: 22 additions & 8 deletions src/reports/repo/rpmmd.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,16 +5,15 @@
import os
import tempfile
import traceback
import urlparse
import urllib.parse
import weakref
from collections import defaultdict, namedtuple

import requests
from lxml import etree
from rpmUtils.miscutils import (
compareEVR, rangeCompare, splitFilename, stringToVersion
)
from yum import i18n
#from rpmUtils.miscutils import (
# compareEVR, rangeCompare, splitFilename, stringToVersion
#)


class Session(object):
Expand DownExpand Up@@ -300,7 +299,7 @@ def refresh_cache(self):
),
verify=False
)
printreq.url
print(req.url)
if not req.status_code == requests.codes.ok:
req.raise_for_status()

Expand DownExpand Up@@ -328,7 +327,7 @@ def repomd(self):
urlparse.urljoin(self.baseurl, "repodata/repomd.xml"),
verify=False
)
printreq.url
print(req.url)
if req.status_code == requests.codes.ok:
self._repomd = etree.fromstring(req.content)
self.revision = self._repomd.find("{*}revision").text
Expand DownExpand Up@@ -710,7 +709,7 @@ def matchingPrcos(self, prcotype, reqtuple):
# find the named entry in pkgobj, do the comparsion
result = []
for (n, f, (e, v, r)) in self.prco.get(prcotype, []):
if not i18n.str_eq(reqn, n):
if not _str_eq(reqn, n):
continue

if f == '=':
Expand All@@ -733,6 +732,21 @@ def matchingPrcos(self, prcotype, reqtuple):

return result

# Lifted from yum
def _str_eq(a, b):
if isinstance(a, unicode) == isinstance(b, unicode):
if a == b:
return True
elif _to_utf8(a) == _to_utf8(b):
return True
return False

# Lifted from yum
def _to_utf8(obj, errors='replace'):
if isinstance(obj, unicode):
obj = obj.encode('utf-8', errors)
return obj


class Patterns(object):
def __init__(self, patxml):
Expand Down
22 changes: 11 additions & 11 deletions src/reports/repo/utils.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,10 @@
from collections import defaultdict, OrderedDict
from copy import copy
from tempfile import mkstemp
from urllib2 import HTTPError
from urllib.error import HTTPError

import pydot
import yum
#import yum
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
Expand All@@ -16,7 +16,7 @@
from django.utils.safestring import mark_safe
from osc import core

import buildservice
#import buildservice

from .misc import (
_exclude_by_meta, _find_comparable_component, _find_unmet_reqs, _fmt_chlog,
Expand DownExpand Up@@ -340,14 +340,14 @@ def _graph_post_save(sender, **kwargs):
graph.dot and
os.path.exists(os.path.join(settings.MEDIA_ROOT, graph.dot.name))
):
print"already exists"
print("already exists")
return
if graph.image:
repos = graph.image.repo.all()
elif graph.repo:
repos = graph.repo.all()
else:
print"neither image or repo"
print("neither image or repo")
return

packages = None
Expand DownExpand Up@@ -458,7 +458,7 @@ def _find_obs_pkg(bs, pkg, src_project):
# search predicate
predicate = "(@name = '%s') and path/@project='%s'" % (pkg, src_project)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand All@@ -474,7 +474,7 @@ def _find_obs_pkg(bs, pkg, src_project):
pkg, src_project
)
kwa = {path: predicate}
printkwa
print(kwa)
# osc search function wants keyword args
result = core.search(bs.apiurl, **kwa)
# obs search will return results from subprojects as well,
Expand DownExpand Up@@ -535,8 +535,8 @@ def _creq(new_repo, old_repo, submit, delete, comment):
tgt_prj_pkgs = bs.getPackageList(str(tgt_prj.name))

if pkg not in src_prj_pkgs:
printpkg
printsrc_prj
print(pkg)
print(src_prj)
pkg = _find_obs_pkg(bs, pkg, src_prj.name)
if not pkg:
messages.append(
Expand DownExpand Up@@ -577,7 +577,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
'tgt_package': pkg,
}
)
printoptions
print(options)
all_actions = []
tgts = []
for tgt, actions in options.items():
Expand All@@ -598,7 +598,7 @@ def _creq(new_repo, old_repo, submit, delete, comment):
weburl, req.reqid, req.reqid, ", ".join(tgts)))
)

except HTTPError, err:
except HTTPError as err:
status = etree.fromstring(err.read())
errors.append(
"Error while creating request: %s" % status.find(("summary")).text
Expand Down
4 changes: 2 additions & 2 deletions src/reports/settings.py
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
# Django settings for reports project.
import ConfigParser
import configparser
import json
from os.path import dirname, expanduser, isabs, isdir, isfile, join, split

from django.core.exceptions import ImproperlyConfigured

PROJECT_DIR = dirname(__file__)

config = ConfigParser.ConfigParser()
config = configparser.ConfigParser()
# Read defaults
config.readfp(open(join(PROJECT_DIR, "reports.conf")))
# Read overrides from etc and local file for developement setup
Expand Down