Merge several steps towards python3 compatibility.
(From branch 'feat/python3' into develop.)
This commit is contained in:
commit
78437acb4a
@ -18,8 +18,7 @@
|
||||
import locale
|
||||
import sys
|
||||
|
||||
from . import p3
|
||||
from p3 import input
|
||||
from .p3 import input
|
||||
|
||||
|
||||
class UserError(Exception):
|
||||
|
@ -1,11 +1,11 @@
|
||||
import unicodedata
|
||||
import re
|
||||
|
||||
from .p3 import ustr
|
||||
from .p3 import ustr, uchr
|
||||
|
||||
# citekey stuff
|
||||
|
||||
CONTROL_CHARS = ''.join(map(unichr, range(0, 32) + range(127, 160)))
|
||||
CONTROL_CHARS = ''.join(map(uchr, list(range(0, 32)) + list(range(127, 160))))
|
||||
CITEKEY_FORBIDDEN_CHARS = '@\'\\,#}{~%/' # '/' is OK for bibtex but forbidden
|
||||
# here since we transform citekeys into filenames
|
||||
CITEKEY_EXCLUDE_RE = re.compile('[%s]'
|
||||
|
@ -1,19 +1,19 @@
|
||||
# core
|
||||
import init_cmd
|
||||
import add_cmd
|
||||
import rename_cmd
|
||||
import remove_cmd
|
||||
import list_cmd
|
||||
from . import init_cmd
|
||||
from . import add_cmd
|
||||
from . import rename_cmd
|
||||
from . import remove_cmd
|
||||
from . import list_cmd
|
||||
# doc
|
||||
import attach_cmd
|
||||
import open_cmd
|
||||
import tag_cmd
|
||||
import note_cmd
|
||||
from . import attach_cmd
|
||||
from . import open_cmd
|
||||
from . import tag_cmd
|
||||
from . import note_cmd
|
||||
# bulk
|
||||
import export_cmd
|
||||
import import_cmd
|
||||
from . import export_cmd
|
||||
from . import import_cmd
|
||||
# bonus
|
||||
import websearch_cmd
|
||||
from . import websearch_cmd
|
||||
|
||||
import edit_cmd
|
||||
# import update_cmd
|
||||
from . import edit_cmd
|
||||
# from . import update_cmd
|
||||
|
@ -112,6 +112,6 @@ def command(args):
|
||||
try:
|
||||
p.docpath = docfile
|
||||
rp.push_paper(p)
|
||||
except ValueError, v:
|
||||
except ValueError as v:
|
||||
ui.error(v.message)
|
||||
ui.exit(1)
|
||||
|
@ -39,9 +39,9 @@ def command(args):
|
||||
pass # TODO warn if file does not exists
|
||||
paper.docpath = document
|
||||
rp.push_paper(paper, overwrite=True, event=False)
|
||||
except ValueError, v:
|
||||
except ValueError as v:
|
||||
ui.error(v.message)
|
||||
ui.exit(1)
|
||||
except IOError, v:
|
||||
except IOError as v:
|
||||
ui.error(v.message)
|
||||
ui.exit(1)
|
||||
|
@ -3,9 +3,7 @@ import subprocess
|
||||
import tempfile
|
||||
import shutil
|
||||
|
||||
import urlparse
|
||||
import httplib
|
||||
import urllib2
|
||||
from .p3 import urlparse, HTTPConnection, urlopen
|
||||
|
||||
|
||||
# files i/o
|
||||
@ -62,7 +60,7 @@ def system_path(path):
|
||||
# dealing with formatless content
|
||||
|
||||
def content_type(path):
|
||||
parsed = urlparse.urlparse(path)
|
||||
parsed = urlparse(path)
|
||||
if parsed.scheme == 'http':
|
||||
return 'url'
|
||||
else:
|
||||
@ -70,8 +68,8 @@ def content_type(path):
|
||||
|
||||
|
||||
def url_exists(url):
|
||||
parsed = urlparse.urlparse(url)
|
||||
conn = httplib.HTTPConnection(parsed.netloc)
|
||||
parsed = urlparse(url)
|
||||
conn = HTTPConnection(parsed.netloc)
|
||||
conn.request('HEAD', parsed.path)
|
||||
response = conn.getresponse()
|
||||
conn.close()
|
||||
|
@ -1,6 +1,6 @@
|
||||
import os
|
||||
import re
|
||||
import urlparse
|
||||
from .p3 import urlparse
|
||||
|
||||
from .content import (check_file, check_directory, read_file, write_file,
|
||||
system_path, check_content, content_type, get_content)
|
||||
@ -125,7 +125,7 @@ class DocBroker(object):
|
||||
|
||||
def in_docsdir(self, docpath):
|
||||
try:
|
||||
parsed = urlparse.urlparse(docpath)
|
||||
parsed = urlparse(docpath)
|
||||
except Exception:
|
||||
return False
|
||||
return parsed.scheme == self.scheme
|
||||
@ -139,7 +139,7 @@ class DocBroker(object):
|
||||
Return absoluted paths of regular ones otherwise.
|
||||
"""
|
||||
if self.in_docsdir(docpath):
|
||||
parsed = urlparse.urlparse(docpath)
|
||||
parsed = urlparse(docpath)
|
||||
if parsed.path == '':
|
||||
docpath = os.path.join(self.docdir, parsed.netloc)
|
||||
else:
|
||||
|
@ -5,10 +5,18 @@ if sys.version_info[0] == 2:
|
||||
import StringIO as io
|
||||
input = raw_input
|
||||
ustr = unicode
|
||||
uchr = unichr
|
||||
from urlparse import urlparse
|
||||
from urllib2 import urlopen
|
||||
from httplib import HTTPConnection
|
||||
else:
|
||||
import configparser
|
||||
import io
|
||||
ustr = str
|
||||
uchr = chr
|
||||
from urllib.parse import urlparse
|
||||
from urllib.request import urlopen
|
||||
from http.client import HTTPConnection
|
||||
|
||||
configparser = configparser
|
||||
io = io
|
||||
|
@ -3,7 +3,7 @@ from datetime import datetime
|
||||
|
||||
from . import bibstruct
|
||||
from . import events
|
||||
from datacache import DataCache
|
||||
from .datacache import DataCache
|
||||
from .paper import Paper
|
||||
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
import dotdot
|
||||
from pubs import color
|
||||
|
||||
|
||||
def perf_color():
|
||||
s = str(range(1000))
|
||||
s = str(list(range(1000)))
|
||||
for _ in range(5000000):
|
||||
color.dye(s, color.red)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
perf_color()
|
||||
|
@ -1,4 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import print_function
|
||||
import unittest
|
||||
|
||||
import yaml
|
||||
@ -8,6 +9,7 @@ from pubs import endecoder
|
||||
|
||||
from str_fixtures import bibtex_raw0, metadata_raw0, turing_bib
|
||||
|
||||
|
||||
def compare_yaml_str(s1, s2):
|
||||
if s1 == s2:
|
||||
return True
|
||||
@ -72,9 +74,9 @@ class TestEnDecode(unittest.TestCase):
|
||||
biblines = turing_bib.splitlines()
|
||||
biblines.insert(-3, keyword_str)
|
||||
bibsrc = '\n'.join(biblines)
|
||||
print bibsrc
|
||||
print(bibsrc)
|
||||
entry = decoder.decode_bibdata(bibsrc)['turing1950computing']
|
||||
print entry
|
||||
print(entry)
|
||||
self.assertNotIn(u'keywords', entry)
|
||||
self.assertIn(u'keyword', entry)
|
||||
self.assertEqual(set(keywords), set(entry[u'keyword']))
|
||||
|
@ -1,3 +1,4 @@
|
||||
from __future__ import print_function
|
||||
import unittest
|
||||
import re
|
||||
import os
|
||||
@ -145,9 +146,9 @@ class TestList(DataCommandTestCase):
|
||||
'pubs list',
|
||||
]
|
||||
outs = self.execute_cmds(cmds)
|
||||
print outs[1].splitlines()
|
||||
print(outs[1].splitlines())
|
||||
self.assertEquals(0, len(outs[1].splitlines()))
|
||||
print outs[3].splitlines()
|
||||
print(outs[3].splitlines())
|
||||
self.assertEquals(1, len(outs[3].splitlines()))
|
||||
|
||||
def test_list_several_no_date(self):
|
||||
@ -162,11 +163,11 @@ class TestList(DataCommandTestCase):
|
||||
'pubs list',
|
||||
]
|
||||
outs = self.execute_cmds(cmds)
|
||||
print outs[0].splitlines()
|
||||
print(outs[0].splitlines())
|
||||
self.assertEquals(4, len(outs[0].splitlines()))
|
||||
print outs[2].splitlines()
|
||||
print(outs[2].splitlines())
|
||||
self.assertEquals(3, len(outs[2].splitlines()))
|
||||
print outs[4].splitlines()
|
||||
print(outs[4].splitlines())
|
||||
self.assertEquals(4, len(outs[4].splitlines()))
|
||||
# Last added should be last
|
||||
self.assertEquals('[Page99]', outs[4].splitlines()[-1][:8])
|
||||
@ -178,7 +179,7 @@ class TestList(DataCommandTestCase):
|
||||
'pubs list title:language author:Saunders',
|
||||
]
|
||||
outs = self.execute_cmds(cmds)
|
||||
print outs[-1]
|
||||
print(outs[-1])
|
||||
self.assertEquals(1, len(outs[-1].splitlines()))
|
||||
|
||||
def test_list_ignore_case(self):
|
||||
@ -188,7 +189,7 @@ class TestList(DataCommandTestCase):
|
||||
'pubs list --ignore-case title:lAnguAge author:saunders',
|
||||
]
|
||||
outs = self.execute_cmds(cmds)
|
||||
print outs[-1]
|
||||
print(outs[-1])
|
||||
self.assertEquals(1, len(outs[-1].splitlines()))
|
||||
|
||||
def test_list_force_case(self):
|
||||
@ -249,7 +250,7 @@ class TestUsecase(DataCommandTestCase):
|
||||
]
|
||||
self.execute_cmds(cmds)
|
||||
docdir = self.fs['os'].path.expanduser('~/.pubs/doc/')
|
||||
print self.fs['os'].listdir(docdir)
|
||||
print(self.fs['os'].listdir(docdir))
|
||||
self.assertNotIn('turing-mind-1950.pdf', self.fs['os'].listdir(docdir))
|
||||
|
||||
def test_editor_abort(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user