diff --git a/.gitignore b/.gitignore index aef719b..fffc64d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,2 @@ __pycache__ *.swp -.pybuild/ -calcool.egg-info/ -debian/.debhelper/ -debian/calcool.postinst.debhelper -debian/calcool.prerm.debhelper -debian/calcool.substvars -debian/calcool/ -debian/debhelper-build-stamp -debian/files -build/ diff --git a/.quickly b/.quickly new file mode 100644 index 0000000..93de0e2 --- /dev/null +++ b/.quickly @@ -0,0 +1,4 @@ +project = calcool +template = ubuntu-application +lp_id = calcool +version = 12.06 diff --git a/bin/calcool b/bin/calcool index 0b67979..821a5a3 100755 --- a/bin/calcool +++ b/bin/calcool @@ -1,4 +1,4 @@ -#! /usr/bin/python3 +#!/usr/bin/python # -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*- ### BEGIN LICENSE # Copyright (C) 2010 jan gerber @@ -14,15 +14,12 @@ # You should have received a copy of the GNU General Public License along # with this program. If not, see . ### END LICENSE +from __future__ import division import sys import os +import gtk -import gi -gi.require_version("Gtk", "3.0") -from gi.repository import Gtk as gtk -gi.require_version("GtkSource", "4") -from gi.repository import GtkSource -GtkSourceView = GtkSource.View() +from gtksourceview2 import View as GtkSourceView from math import * safe_list = ['math','acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', @@ -54,6 +51,7 @@ from calcool.calcoolconfig import getdatapath class CalcoolWindow(gtk.Window): __gtype_name__ = "CalcoolWindow" + record_type = "http://wiki.ubuntu.com/Quickly/CalcoolDocument" database_name = "calcool" filename = '' @@ -98,19 +96,19 @@ class CalcoolWindow(gtk.Window): def update_output(self): self.builder.get_object('status').set_text('Calculating...') txt = self.builder.get_object('input').get_buffer() - text = txt.get_text(txt.get_start_iter(), txt.get_end_iter(), 0) + text = txt.get_text(txt.get_start_iter(), txt.get_end_iter()) rows = text.split('\n') otxt = [] computed_values = [] def expand_lines(line): - return re.sub(r'line(\d+)', lambda m: 'line%010d'%int(m.groups(0)[0]), line) + return re.sub('line(\d+)', lambda m: 'line%010d'%int(m.groups(0)[0]), line) def resolve_row(r, line): #if r not in self._results: try: r_ = r r_ = expand_lines(r_) - match = re.compile(r'line(\d+)').findall(r) + match = re.compile('line(\d+)').findall(r) match = filter(lambda l: int(l) <= len(rows), match) if match: for l in match: @@ -119,7 +117,7 @@ class CalcoolWindow(gtk.Window): value = '(%s)' % expand_lines(rows[l-1]) r_ = r_.replace('line%010d' % l, value) r_ = resolve_row(r_, line) - #print (r, r_) + #print r, r_ result = str(eval(r_, {"__builtins__":None}, safe_dict)) #highlight computed values @@ -136,9 +134,9 @@ class CalcoolWindow(gtk.Window): output.set_text('\n'.join(otxt)) tagTable = output.get_tag_table() - computed = tagTable.lookup(name='computed') + computed = tagTable.lookup('computed') if not computed: - computed = gtk.TextTag(name='computed') + computed = gtk.TextTag('computed') computed.set_property('weight', 700) # pango.WEIGHT_BOLD = 700 tagTable.add(computed) @@ -160,7 +158,7 @@ class CalcoolWindow(gtk.Window): def load_file(self, filename): with open(filename) as f: - text = f.read() + text = f.read().decode('utf-8') #set the UI to display the string buff = self.builder.get_object("input").get_buffer() buff.set_text(text) @@ -168,9 +166,10 @@ class CalcoolWindow(gtk.Window): self.filename = filename def open_file(self, widget, data=None): - dialog = gtk.FileChooserDialog(title=None,action=gtk.FileChooserAction.OPEN) - dialog.add_buttons(gtk.STOCK_CANCEL,gtk.ResponseType.CANCEL,gtk.STOCK_OPEN,gtk.ResponseType.OK) - dialog.set_default_response(gtk.ResponseType.OK) + dialog = gtk.FileChooserDialog(title=None,action=gtk.FILE_CHOOSER_ACTION_OPEN, + buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) + + dialog.set_default_response(gtk.RESPONSE_OK) filter = gtk.FileFilter() filter.set_name("Calcool Documents") @@ -184,7 +183,7 @@ class CalcoolWindow(gtk.Window): dialog.add_filter(filter) response = dialog.run() - if response == gtk.ResponseType.OK: + if response == gtk.RESPONSE_OK: filename = dialog.get_filename() dialog.destroy() self.load_file(filename) @@ -202,13 +201,13 @@ class CalcoolWindow(gtk.Window): start_iter = buff.get_start_iter() end_iter = buff.get_end_iter() - text = buff.get_text(start_iter,end_iter, 0) - with open(self.filename, "wb") as f: + text = buff.get_text(start_iter,end_iter) + with open(self.filename, "w") as f: f.write(text.encode('utf-8')) def save_as_file(self, widget, data=None): - dialog = gtk.FileChooserDialog(title=None,action=gtk.FileChooserAction.SAVE) - dialog.add_buttons(gtk.STOCK_CANCEL,gtk.ResponseType.CANCEL,gtk.STOCK_OPEN,gtk.ResponseType.OK) + dialog = gtk.FileChooserDialog(title=None,action=gtk.FILE_CHOOSER_ACTION_SAVE, + buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) filter = gtk.FileFilter() filter.set_name("Calcool Documents") filter.add_mime_type("text/x-calcool") @@ -221,10 +220,8 @@ class CalcoolWindow(gtk.Window): dialog.add_filter(filter) response = dialog.run() - if response == gtk.ResponseType.OK: + if response == gtk.RESPONSE_OK: self.filename = dialog.get_filename() - if not self.filename.endswith(".calc"): - self.filename += ".calc" self.save_file(widget) dialog.destroy() @@ -273,4 +270,4 @@ if __name__ == "__main__": window.load_file(args[0]) gtk.main() def save_file(self, widget, data=None): - print("save") + print "save" diff --git a/calcool/AboutCalcoolDialog.py b/calcool/AboutCalcoolDialog.py index dd56a5c..6d56ce1 100644 --- a/calcool/AboutCalcoolDialog.py +++ b/calcool/AboutCalcoolDialog.py @@ -16,9 +16,7 @@ import sys import os -import gi -gi.require_version("Gtk", "3.0") -from gi.repository import Gtk as gtk +import gtk from calcool.calcoolconfig import getdatapath diff --git a/data/media/icon.png b/data/media/icon.png index d8e5fa7..b080e14 100644 Binary files a/data/media/icon.png and b/data/media/icon.png differ diff --git a/data/media/large.png b/data/media/large.png index d2b073e..a5287fa 100644 Binary files a/data/media/large.png and b/data/media/large.png differ diff --git a/data/media/logo.png b/data/media/logo.png index 91a2140..71d29ec 100644 Binary files a/data/media/logo.png and b/data/media/logo.png differ diff --git a/data/ui/AboutCalcoolDialog.ui b/data/ui/AboutCalcoolDialog.ui index 87b33d5..23250cf 100644 --- a/data/ui/AboutCalcoolDialog.ui +++ b/data/ui/AboutCalcoolDialog.ui @@ -6,8 +6,9 @@ Copyright (C) 2010 jan gerber <j@mailb.org>5 ../media/icon.png normal + False Calcool - 25.02 + 12.06 Calcool allows you to do calculations in a document, on the right you have the result for each line. If you ever used bc and wanted to edit a previous @@ -48,4 +49,4 @@ calcool might be what you are looking for. - + \ No newline at end of file diff --git a/data/ui/CalcoolWindow.ui b/data/ui/CalcoolWindow.ui index 1e7d8f2..8bdb9f1 100644 --- a/data/ui/CalcoolWindow.ui +++ b/data/ui/CalcoolWindow.ui @@ -1,6 +1,10 @@ + + + + 600 500 @@ -169,7 +173,6 @@ True True - True 2 2 True diff --git a/debian/changelog b/debian/changelog index ceaab3c..0be1e0e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,3 @@ -calcool (25.00) unstable; urgency=low - - * migreate to python3 - - -- Jan Gerber Fri, 31 Jan 2025 19:01:32 +0430 - calcool (12.06) precise; urgency=low * resolved lines in lines diff --git a/debian/compat b/debian/compat index f599e28..1e8b314 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -10 +6 diff --git a/debian/control b/debian/control index b9da5db..bb2e48a 100644 --- a/debian/control +++ b/debian/control @@ -1,14 +1,21 @@ Source: calcool -Maintainer: Jan Gerber Section: python -Priority: optional -Build-Depends: python3-all, python3-distutils-extra, debhelper (>= 7.4.3), dh-python -Standards-Version: 3.9.1 +Priority: extra +Build-Depends: cdbs (>= 0.4.43), + debhelper (>= 6), + python (>= 2.6.6-3~), + python-distutils-extra (>= 2.10) +Maintainer: j^ +Standards-Version: 3.8.2 +XS-Python-Version: current Package: calcool Architecture: all -XB-Python-Version: ${python3:Versions} -Depends: python3, ${misc:Depends}, ${python3:Depends}, gir1.2-gtksource-4 +XB-Python-Version: ${python:Versions} +Depends: ${misc:Depends}, + ${python:Depends}, + python-gtksourceview2, + python-gtk2 Description: A document based calculator tool Calcool allows you to do calculations in a document, on the right you have the result for each line. If you ever used bc and wanted to edit a diff --git a/debian/copyright b/debian/copyright index 251df20..9dfe699 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,10 +1,13 @@ Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135 Name: calcool -Maintainer: Jan Gerber -Source: https://code.0x2620.org/j/calcool +Maintainer: j^ +Source: https://launchpad.net/calcool Files: * -Copyright: (C) 2010-2025 Jan Gerber +Copyright: (C) 2010 jan gerber +Copyright: (C) 2010 jan gerber <j@mailb.org> +Copyright: (C) 2010 jan gerber <j@mailb.org> +Copyright: (C) 2010 jan gerber <j@mailb.org>5 License: GPL-3 The full text of the GPL is distributed in /usr/share/common-licenses/GPL-3 on Debian systems. diff --git a/debian/pycompat b/debian/pycompat index 00750ed..0cfbf08 100644 --- a/debian/pycompat +++ b/debian/pycompat @@ -1 +1 @@ -3 +2 diff --git a/debian/rules b/debian/rules index 641186e..2c0fe5e 100755 --- a/debian/rules +++ b/debian/rules @@ -1,4 +1,9 @@ #!/usr/bin/make -f - %: - dh $@ --with python3 --buildsystem=pybuild +ifneq ($(shell dh -l | grep -xF translations),) + dh $@ --with python2,translations +else + dh $@ --with python2 +endif + + diff --git a/etc/apport/crashdb.conf.d/calcool-crashdb.conf b/etc/apport/crashdb.conf.d/calcool-crashdb.conf new file mode 100644 index 0000000..48ef7ed --- /dev/null +++ b/etc/apport/crashdb.conf.d/calcool-crashdb.conf @@ -0,0 +1,9 @@ +### BEGIN LICENSE +# This file is in the public domain +### END LICENSE + +calcool = { + 'impl' : 'launchpad', + 'project' : 'calcool', + 'bug_pattern_base' : None, +} diff --git a/po/calcool.pot b/po/calcool.pot index 66a01fc..f7f9116 100644 --- a/po/calcool.pot +++ b/po/calcool.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-31 19:23+0530\n" +"POT-Creation-Date: 2015-05-24 22:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,12 +18,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../data/ui/AboutCalcoolDialog.ui.h:1 -#: ../debian/calcool/usr/share/calcool/ui/AboutCalcoolDialog.ui.h:1 msgid "Copyright (C) 2010 jan gerber " msgstr "" #: ../data/ui/AboutCalcoolDialog.ui.h:2 -#: ../debian/calcool/usr/share/calcool/ui/AboutCalcoolDialog.ui.h:2 msgid "" "Calcool allows you to do calculations in a document,\n" "on the right you have the result for each line.\n" @@ -33,7 +31,6 @@ msgid "" msgstr "" #: ../data/ui/AboutCalcoolDialog.ui.h:7 -#: ../debian/calcool/usr/share/calcool/ui/AboutCalcoolDialog.ui.h:7 msgid "" "# Copyright (C) 2010 jan gerber \n" "# This program is free software: you can redistribute it and/or modify it \n" @@ -51,21 +48,17 @@ msgid "" msgstr "" #: ../data/ui/CalcoolWindow.ui.h:1 -#: ../debian/calcool/usr/share/calcool/ui/CalcoolWindow.ui.h:1 msgid "Calcool" msgstr "" #: ../data/ui/CalcoolWindow.ui.h:2 -#: ../debian/calcool/usr/share/calcool/ui/CalcoolWindow.ui.h:2 msgid "_File" msgstr "" #: ../data/ui/CalcoolWindow.ui.h:3 -#: ../debian/calcool/usr/share/calcool/ui/CalcoolWindow.ui.h:3 msgid "_Edit" msgstr "" #: ../data/ui/CalcoolWindow.ui.h:4 -#: ../debian/calcool/usr/share/calcool/ui/CalcoolWindow.ui.h:4 msgid "_Help" msgstr "" diff --git a/setup.py b/setup.py index 367255f..1b8d823 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*- ### BEGIN LICENSE # Copyright (C) 2010 jan gerber @@ -17,7 +17,12 @@ ###################### DO NOT TOUCH THIS (HEAD TO THE SECOND PART) ###################### -import DistUtilsExtra.auto +try: + import DistUtilsExtra.auto +except ImportError: + import sys + print >> sys.stderr, 'To build calcool you need https://launchpad.net/python-distutils-extra' + sys.exit(1) assert DistUtilsExtra.auto.__version__ >= '2.10', 'needs DistUtilsExtra.auto >= 2.10' import os @@ -26,21 +31,25 @@ import os def update_data_path(prefix, oldvalue=None): try: - with open('calcool/calcoolconfig.py', 'r') as fin: - with open(fin.name + '.new', 'w') as fout: - for line in fin: - fields = line.split(' = ') # Separate variable from value - if fields[0] == '__calcool_data_directory__': - # update to prefix, store oldvalue - if not oldvalue: - oldvalue = fields[1] - line = "%s = '%s'\n" % (fields[0], prefix) - else: # restore oldvalue - line = "%s = %s" % (fields[0], oldvalue) - fout.write(line) - fout.flush() + fin = file('calcool/calcoolconfig.py', 'r') + fout = file(fin.name + '.new', 'w') + + for line in fin: + fields = line.split(' = ') # Separate variable from value + if fields[0] == '__calcool_data_directory__': + # update to prefix, store oldvalue + if not oldvalue: + oldvalue = fields[1] + line = "%s = '%s'\n" % (fields[0], prefix) + else: # restore oldvalue + line = "%s = %s" % (fields[0], oldvalue) + fout.write(line) + + fout.flush() + fout.close() + fin.close() os.rename(fout.name, fin.name) - except (OSError, IOError) as e: + except (OSError, IOError), e: print ("ERROR: Can't find calcool/calcoolconfig.py") sys.exit(1) return oldvalue @@ -49,15 +58,18 @@ def update_data_path(prefix, oldvalue=None): def update_desktop_file(datadir): try: - with open('calcool.desktop.in', 'r') as fin: - with open(fin.name + '.new', 'w') as fout: - for line in fin: - if 'Icon=' in line: - line = "Icon=%s\n" % (datadir + 'media/logo.png') - fout.write(line) - fout.flush() + fin = file('calcool.desktop.in', 'r') + fout = file(fin.name + '.new', 'w') + + for line in fin: + if 'Icon=' in line: + line = "Icon=%s\n" % (datadir + 'media/logo.png') + fout.write(line) + fout.flush() + fout.close() + fin.close() os.rename(fout.name, fin.name) - except (OSError, IOError) as e: + except (OSError, IOError), e: print ("ERROR: Can't find calcool.desktop.in") sys.exit(1) @@ -65,9 +77,9 @@ def update_desktop_file(datadir): class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto): def run(self): if self.root or self.home: - print("WARNING: You don't use a standard --prefix installation, take care that you eventually " \ + print "WARNING: You don't use a standard --prefix installation, take care that you eventually " \ "need to update quickly/quicklyconfig.py file to adjust __quickly_data_directory__. You can " \ - "ignore this warning if you are packaging and uses --prefix.") + "ignore this warning if you are packaging and uses --prefix." previous_value = update_data_path(self.prefix + '/share/calcool/') update_desktop_file(self.prefix + '/share/calcool/') DistUtilsExtra.auto.install_auto.run(self) @@ -81,13 +93,13 @@ class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto): DistUtilsExtra.auto.setup( name='calcool', - version='25.02', + version='12.06', license='GPL-3', - author='Jan Gerber', + author='j^', author_email='j@mailb.org', description='A document based calculator tool', long_description='Calcool allows you to do calculations in a document, on the right you have the result for each line. If you ever used bc and wanted to edit a previous line or tried to reference the result of line 3, calcool might be what you are looking for.', - url='https://code.0x2620.org/j/calcool', + url='https://launchpad.net/calcool', cmdclass={'install': InstallAndUpdateDataDirectory}, data_files=[ ('share/mime/packages', ['calcool.xml']),