Merge several steps towards python3 compatibility.

(From branch 'feat/python3' into develop.)
main
Olivier Mangin 11 years ago
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…
Cancel
Save