Commit graph

532 commits

Author SHA1 Message Date
Robert Sparks 0b3f9f5dc5
refactor: clarify handling what groups looked like at past session times (#4767)
* refactor: clarify handling what groups looked like at past session times

* fix: replace missed instance of historic_parent reference

* fix: reflect that group_at_the_time always returns something

* chore: update copyright lines
2022-11-29 11:08:16 -06:00
Lars Eggert 6eabd4a3a1
chore: Use codespell to fix typos in comments. (#4794)
First part of replacement of #4651
2022-11-28 10:36:36 -06:00
Jennifer Richards 5a55ec0959
test: fix date-related timezone errors in tests (#4717)
* test: compare UTC dates in test_search_mail_archive()

* test: compare datetimes, not dates, in action holders test

* test: adjust test to match TZ used for IPR notification message

* test: fix timezone in date_today() calls for liaisons tests

* test: use settings.TIME_ZONE for date in nomination tests

* test: correctly use settings.TIME_ZONE instead of system time zone
2022-11-07 09:54:35 +00:00
Robert Sparks eb4b523e66
chore: merge main (#4714) 2022-11-06 12:36:14 -06:00
Jennifer Richards 0caf946e48
Merge branch 'feat/tzaware' into dev/main-for-tzaware-merge 2022-10-28 14:40:04 -03:00
Jennifer Richards 3bf997ba03
chore: rename management commands to avoid non-inclusive language (#4656)
* chore: rename create_dummy_meeting to create_test_meeting

* chore: reword comments to match renamed command

* chore: rename make_dummy_nomcom to create_test_nomcom

Avoids non-inclusive language and better matches other command naming.

* chore: reword comments to match renamed command
2022-10-28 11:01:00 -05:00
Jennifer Richards 3220bf3c40
chore: replace last few datetime.date.today() calls with date_today() 2022-10-18 12:45:47 -03:00
Jennifer Richards dfe1147e7c
chore: switch a few datetime_today() calls to date_today() 2022-10-18 12:25:25 -03:00
Jennifer Richards da70acfdff
Merge branch 'feat/tzaware' into jennifer/yet-more-tz-fixes
# Conflicts:
#	ietf/ietfauth/utils.py
#	ietf/meeting/tests_views.py
#	ietf/stats/tests.py
2022-10-17 16:39:45 -03:00
Jennifer Richards f3bdbf0ed4
Merge branch 'feat/tzaware' into jennifer/main-for-tzaware-merge
# Conflicts:
#	ietf/meeting/tests_js.py
#	ietf/meeting/tests_models.py
#	ietf/meeting/tests_views.py
#	ietf/meeting/views.py
#	ietf/name/fixtures/names.json
#	ietf/templates/meeting/agenda.html
#	ietf/templates/meeting/session_buttons_include.html
#	ietf/templates/meeting/timeslot_start_end.html
2022-10-14 16:35:57 -03:00
Robert Sparks 6dd6165444
fix: correct meeting attendance calculations (#4536)
* fix: correct meeting attendance calculations

* test: change meetingregistration factory defaults

* test: Setup stats tests to verify counts honor meeting.Attended

But the tests aren't actually looking to see what numbers get generated yet.

* test: add test for attendance cross-talk between meetings

* fix: limit attendance count query to single meeting

* refactor: rename attendance.online to .remote

* fix: only count a given person as onsite or remote, but never both

* test: align tests with cleanup

Co-authored-by: Jennifer Richards <jennifer@painless-security.com>
2022-10-13 10:55:57 -05:00
Jennifer Richards 7b1b7f5273
Merge branch 'feat/tzaware' into dev/tzaware-main-merge 2022-10-11 14:57:34 -03:00
Robert Sparks 97d21800d0
feat: include checkins at the registration desk in nomcom eligibility calculations (#4519)
* chore: rename utility functions to reflect rfc guiding them

* feat: include new checkedin flag in nomcom calculations

* fix: reflect history a bit more accurately.

* fix: address review comment on readability

* fix: finish what c44000d started
2022-10-07 16:17:28 -05:00
Robert Sparks 9b896e5869
fix: avoid emptying nomcom session key when openssl complains about derivation (#4524) 2022-09-30 08:05:01 -05:00
Jennifer Richards a653582cf7
fix: timezone fixes from last few comparisons with tzaware-obe 2022-09-28 13:21:50 -03:00
Jennifer Richards ca1320f303
chore: merge main into feat/tzaware
chore: merge main into feat/tzaware
2022-09-22 12:21:38 -03:00
Robert Sparks 5c8545eecb
feat: use hmac, sha256, and a better secret for published nomcom hashes. (#4475)
* feat: use hmac, sha256, and a better secret for published nomcom hashes.

* fix: avoid using django secret key for a different secret context

* fix: Only strip the newline

* fix: improve readability by using rstrip
2022-09-20 12:09:11 -05:00
Jennifer Richards 32054111df
fix: fix failing tests and eliminate naive datetime warnings (#4402)
* test: fix timestamp construction in several doc tests

* refactor: rename date2datetime to datetime_from_date and clarify code

* chore: helper to get tzinfo for PRODUCTION_TIMEZONE

* fix: fix timezone handling in make_last_call()

* test: fix datetime generation in doc.tests_charter

* refactor: remove PRODUCTION_TIMEZONE setting

Replaces the PRODUCTION_TIMEZONE setting with a constant,
DEADLINE_TZINFO, in ietf.utils.timezone.

* test: be more careful about timezone in tests_charter.py

* test: be more careful about timezone in doc/tests.py

* fix: fix timezone handling affecting doc.tests_draft

* fix: fix timezone handling affecting tests_irsg_ballot.py

* fix: fix timezone handling affecting tests_review.py

* fix: fix timezone handling affecting last ietf.doc tests

* fix: fix timezone handling affecting last ietf.group tests

* fix: fix timezone handling affecting ietf.iesg tests

* fix: handle timezones in get_8989_eligibility_querysets

* fix: handle timezones affecting ietfauth tests

* fix: return tz-aware datetime from utc_from_string

* fix: specify timezone for constants in ipr_rfc_number()

* fix: specify tz for ipr deadlines

* fix: handle timezones affecting liaisons tests

* fix: treat leap day in get_8989_eligibility_querysets()

Manual cherry-pick of 248d6474

* test: treat leap day properly in nomcom tests

* fix: fix timezone handling affecting nomcom tests

* test: fix timezone handling in review tests

* fix: fix timezone handling affecting secr.meetings tests

* fix: handle both pytz and zoneinfo timezones in ietf.utils.timezone

* fix: fix timezone handling affecting secr.proceedings tests

* refactor: use make_aware() helper in secr.meetings tests

* test: fix timezone handling in secr.telechat tests

* fix: fix timezone handling affecting stats tests

* fix: eliminate tz-naive helpers affecting sync email parsing

* fix: include timezone data when serializing DeletedEvent data

* fix: fix timezone handling affecting sync tests

* style: remove unused import
2022-09-01 13:07:28 -03:00
Jennifer Richards b85ecce89f
fix: treat leap day properly in nomcom eligibility calc (#4393)
* fix: treat leap day in get_8989_eligibility_querysets()

* test: treat leap day properly in nomcom tests
2022-08-31 16:03:38 -05:00
Jennifer Richards ebebdbed3e
refactor: replace datetime.now and datetime.today with timezone.now (#4211)
* refactor: replace datetime.now with timezone.now

* refactor: migrate model fields to use timezone.now as default

* refactor: replace datetime.today with timezone.now

datetime.datetime.today() is equivalent to datetime.datetime.now(); both
return a naive datetime with the current local time.

* refactor: rephrase datetime.now(tz) as timezone.now().astimezone(tz)

This is effectively the same, but is less likely to encourage accidental
use of naive datetimes.

* refactor: revert datetime.today() change to old migrations

* refactor: change a missed datetime.now to timezone.now

* chore: renumber timezone_now migration

* chore: renumber migrations
2022-08-25 13:45:16 -03:00
Jim Fenton 3aab73d862
feat(nomcom): Allow nomcom chair to turn volunteer acceptance on and off (#4251)
* feat(nomcom): Allow nomcom chair to turn volunteer acceptance on and off
Fixes #4105
Also allows chair to set date of first call for volunteers. If this should be read-only and set by the code, let me know.

* fix(nomcom): Correct helptext for accepting volunteers
2022-07-24 08:51:57 -05:00
Robert Sparks fe1f51aede
fix: Compute 8989 eligibility using actual attendance data. (#4236) 2022-07-21 12:58:32 -05:00
Robert Sparks 18bf87ea5e
feat: improve the admin for the nomcom volunteer model (#4223)
* feat: improve the admin for the nomcom volunteer model

* fix: restore raw-id for person on nomcom volunteer admin.
2022-07-18 08:36:34 -05:00
Robert Sparks b988850985
fix: avoid mutables as defaults. Compute date default arguments at runtime rather than loadtime. (#4144) 2022-07-06 14:39:36 -05:00
Robert Sparks 087265118d
feat: csv export of nomcom volunteers. Fixes #4127. (#4146) 2022-07-06 14:13:41 -05:00
Robert Sparks 07bfa68a75
feat: explicitly model session attendance (#4025)
* feat: add model to track session attendance

* feat: add model to track session attendance

* feat: add api to set session attendees

* fix: use user pk instead off person pk in the attended api.

* feat: calculate three of five from attended

* feat: management utility to populate Attended model history

* docs: document why nomcom calculations don't use Attended yet.

* fix: add migration to add new personalapikey endpoint to choices

* test: verify very old last login prevents api key use,

* chore: address review nits

* chore: comment on some idiosyncracies of the expected input to populate_attended

* fix: add unique_together constraint for the Attended model

* fix: correctly handle empty querysets passed to three_of_five_eligible functions.
2022-06-20 10:46:36 -05:00
Lars Eggert de7ff7e84e
test: fix more validation issues (#3975)
* fix: Avoid numeric IDs on NomCom pages

* fix: Correctly group last names with lowercase/i18n parts

* Remove some unneeded CSS

* fix: Remove extra div closing tag
2022-05-18 10:58:39 -05:00
Jennifer Richards 681fae2af5
test: decode email payloads before validating (#3926) 2022-05-03 09:29:42 -05:00
Robert Sparks 66feccbc67
test: avoid edge case in test factory. Fixes #3513. (#3736) 2022-03-24 09:13:33 -03:00
Jennifer Richards 6c260a5b7e Merge 7.45.1.dev0 into Bootstrap 5 update branch. Made a first pass at reconciling differences.
- Legacy-Id: 19945
2022-02-17 20:09:49 +00:00
Lars Eggert 335a39d4fc More fixes.
- Legacy-Id: 19884
2022-01-28 13:00:47 +00:00
Lars Eggert 5132661b06 More test fixes
- Legacy-Id: 19803
2022-01-05 11:25:25 +00:00
Lars Eggert c68446ae93 More select2 and test fixes.
- Legacy-Id: 19781
2021-12-14 18:19:12 +00:00
Lars Eggert f974fd3c04 Fix more things
- Legacy-Id: 19762
2021-12-09 06:41:00 +00:00
Jennifer Richards 8759955597 Allow nomcom chair to edit liaisons as well as members and generate GroupEvents when changed. Share code between group and nomcom for this purpose. Fixes #3376. Commit ready for merge.
- Legacy-Id: 19710
2021-11-24 16:40:05 +00:00
Jennifer Richards dcf4251363 Better handle invalid character encodings in process_email and feedback_email commands. Add tests of this using stdin. Commit ready for merge.
- Legacy-Id: 19694
2021-11-19 00:41:05 +00:00
Lars Eggert 333d1c40ac Merge ^/personal/lars/7.39.1.dev3
- Legacy-Id: 19649
2021-11-12 11:55:55 +00:00
Robert Sparks 181da11a5c Use rfc8989 for 2022 nomcom eligibility. Fixes #3442. Commit ready for merge.
- Legacy-Id: 19621
2021-11-10 14:59:33 +00:00
Lars Eggert bb5810a934 Labels are badges in bs5.
- Legacy-Id: 19616
2021-11-10 11:15:46 +00:00
Jennifer Richards 81d9234d54 Use temporary directories instead of "real" filesystem for tests. Fixes #3414. Commit ready for merge.
- Legacy-Id: 19555
2021-11-05 19:45:57 +00:00
Jennifer Richards 968b775315 Create management command base class that sends emails on exceptions. Fixes #3356 and #3357. Commit ready for merge.
- Legacy-Id: 19493
2021-10-29 01:58:21 +00:00
Robert Sparks b99eecc1ae Bring the factory-boy and Faker dependencies forward through some minor breaking changes. Stop using the deprecated fr_QC locale in Faker. Commit ready for merge.
- Legacy-Id: 19270
2021-08-03 22:22:35 +00:00
Robert Sparks d5ad189a10 Merged in [19148] from rjsparks@nostrum.com:
Bring the nomcom factories and tests into agreement around what a valid year for a nomcom can be. Fixes #3315.
 - Legacy-Id: 19149
Note: SVN reference [19148] has been migrated to Git commit 76a8a29756
2021-06-23 17:17:34 +00:00
Robert Sparks 76a8a29756 Bring the nomcom factories and tests into agreement around what a valid year for a nomcom can be. Fixes #3315. Commit ready for merge.
- Legacy-Id: 19148
2021-06-23 16:17:09 +00:00
Robert Sparks 2689670546 Merged in [19139] from rjsparks@nostrum.com:
Refine volunteer list view. Show rfc8989 paths.
 - Legacy-Id: 19147
Note: SVN reference [19139] has been migrated to Git commit 06f6b12b18
2021-06-23 15:54:45 +00:00
Robert Sparks 06f6b12b18 Refine volunteer list view. Show rfc8989 paths. Commit ready for merge.
- Legacy-Id: 19139
2021-06-22 20:09:40 +00:00
Jennifer Richards d4271e0525 Skip populate_volunteers forward migration if nomcom2021 is not in the database. Fixes #3306. Commit ready for merge.
- Legacy-Id: 19132
2021-06-15 12:37:23 +00:00
Robert Sparks 4dcd2cbaa6 Merged in [19104] from rjsparks@nostrum.com:
Allow people to volunteer for NomCom via the datatracker.
 - Legacy-Id: 19109
Note: SVN reference [19104] has been migrated to Git commit 86102b9980
2021-06-10 23:12:01 +00:00
Robert Sparks 86102b9980 Allow people to volunteer for NomCom via the datatracker. Commit ready for merge.
- Legacy-Id: 19104
2021-06-10 20:35:50 +00:00
Robert Sparks b8771006b3 Merged in [18999] from rjsparks@nostrum.com:
Correct invalid date assumption in rfc8989 eligibility tests.
 - Legacy-Id: 19001
Note: SVN reference [18999] has been migrated to Git commit 53fa35c148e2d9a3a01987601de5d20edb0c401f
2021-05-18 18:00:40 +00:00
Robert Sparks fd38a9bf96 Add RFC 8989 nomcom eligibility calculations. Commit ready for merge.
- Legacy-Id: 18975
2021-05-06 19:42:09 +00:00
Robert Sparks fe82f4d696 connect the new calculations to the UI. Clean flakes.
- Legacy-Id: 18974
2021-05-06 19:00:58 +00:00
Robert Sparks bcc280fe9b tightened edge for group office rule
- Legacy-Id: 18972
2021-05-06 13:51:29 +00:00
Robert Sparks 216ec499df Checkpointing. Remaining work: convert meetingregistation fixup to a migration and a mgmt comment. Flesh out testing of 8989 rule 2 and fix the known edge case bug. Remove old implementation and connect UI to the new implementation.
- Legacy-Id: 18971
2021-05-01 19:57:04 +00:00
Robert Sparks 3697180cc1 Reverted merge of timezone-aware migration efforts.
- Legacy-Id: 18792
2021-01-12 16:54:20 +00:00
Henrik Levkowetz 774e752a54 Snapshot of timezone-aware datatracker code. Tests pass, and the test-crawler shows only expected differences. Trunk changes merged in up to r18768.
- Legacy-Id: 18770
2020-12-16 23:53:37 +00:00
Henrik Levkowetz 088033d843 Added matching indexes to a number of models with ordering by multiple keys.
- Legacy-Id: 18664
2020-11-09 19:41:12 +00:00
Henrik Levkowetz f4b90c0dc8 Nomcom topic responses didn't save respondent because of a missing form creation parameter. Fixed.
- Legacy-Id: 18652
2020-10-31 19:49:56 +00:00
Henrik Levkowetz eaf9546d0e Fixed a bug in the charset handling of individual parts in multipart email messages in ietf.nomcom.get_body()
- Legacy-Id: 18615
2020-10-13 10:57:23 +00:00
Henrik Levkowetz 779087d24b Merged in [18601] from fenton@bluepopcorn.net:
Added NomCom membership history page. Fixes issue #3006. Branch
 - Legacy-Id: 18614
Note: SVN reference [18601] has been migrated to Git commit 431a112bf1
2020-10-12 19:55:04 +00:00
Henrik Levkowetz f557708ce0 Fixed another py2/py3 issue with the nomcom mail processing script.
- Legacy-Id: 18602
2020-10-12 11:24:15 +00:00
Jim Fenton 431a112bf1 Added NomCom membership history page. Fixes issue #3006. Branch ready for merge.
- Legacy-Id: 18601
2020-10-12 02:36:16 +00:00
Henrik Levkowetz a7396d4756 Tweaked the verbose name of the Nomcom Topic Questionnaire's 'audience' field.
- Legacy-Id: 18568
2020-10-08 12:38:38 +00:00
Henrik Levkowetz 8b9d04f49f Fixed a Py3 str/bytes issue in the feedback_email handler.
- Legacy-Id: 18551
2020-10-02 18:06:11 +00:00
Henrik Levkowetz 0bc492afaf Fixed a bytes/unicode issue for echoed-back nomcom questionnaire text.
- Legacy-Id: 18523
2020-09-28 11:06:55 +00:00
Henrik Levkowetz 60a1e0fe3d Tweaked the decode() templatetag code slightly.
- Legacy-Id: 18482
2020-09-09 19:05:59 +00:00
Henrik Levkowetz 638797cb65 Updated the decrypt() templatetag to ensure it returns string rather than bytes.
- Legacy-Id: 18481
2020-09-09 17:46:27 +00:00
Henrik Levkowetz 57938b039d Converted many cases of plain-text 403 messages to use a properly styled page instead, with a login link when appropriate. Also changed some API endpoint 400 responses to a more correct 403.
- Legacy-Id: 18339
2020-08-06 10:59:52 +00:00
Henrik Levkowetz efcdc4d917 Updated meeting attendance and nomcom eligibility calculations to take the MeetingRegistration.attendance flag into account.
- Legacy-Id: 17955
2020-06-09 21:00:07 +00:00
Henrik Levkowetz ac52ce6595 Updated the NomCom eligibility calculation to use the last 5 in-person meetings, in accordance with draft-iesg-nomcom-eligibility-2020-03 which has now been approved for publication. The code will need revisiting when the long-term policy is available.
- Legacy-Id: 17859
2020-05-20 19:41:25 +00:00
Henrik Levkowetz bc05e7a8d0 Refactored many instances of msg.get_payload(decode=True).decode('utf-8') and similar to get_payload_text(msg), which uses msg.get_charset() to get the actual charset to do the decoding, in a consistent manner. Also removed some instances of force_str, but more remain.
- Legacy-Id: 17807
2020-05-16 20:20:05 +00:00
Henrik Levkowetz 9aeda11a29 Removed some Py2 compatibility decorators.
- Legacy-Id: 17673
2020-04-21 13:54:31 +00:00
Robert Sparks d981076432 Refactor disqualifying roles into one place. Commit ready for merge.
- Legacy-Id: 17650
2020-04-15 22:34:44 +00:00
Robert Sparks b387599dac Follow RFC8713 section 4.15 for roles that disqualify for nomcom. Fixes #2944. Commit ready for merge.
- Legacy-Id: 17649
2020-04-15 21:39:58 +00:00
Henrik Levkowetz f10ddadc0e Merged in changes from trunk up to r17584.
- Legacy-Id: 17593
2020-04-07 16:02:52 +00:00
Henrik Levkowetz dc4c05ec5b Changed the object factory instances of nomcom private key and cert to be byte objects (matching the production settings), and fixed the issue with nomcom key handling under Py3 found by fenton@bluepopcorn.net. Did some renaming in nomcom/tests.py to better match setup/teardown function names to functionality.
- Legacy-Id: 17536
2020-03-25 13:36:29 +00:00
Henrik Levkowetz a91e7aa4c8 Merged in [17493] from mahoney@nostrum.com:
Changed awkward IESG/IAB Nominating Committee names to just NomCom, updated a ref. Fixes #2860.
 - Legacy-Id: 17515
Note: SVN reference [17493] has been migrated to Git commit cf98a644e3da5d2a4303156048ef6aed039f908e
2020-03-22 23:19:55 +00:00
Henrik Levkowetz 726fcbf27d Removed all __future__ imports.
- Legacy-Id: 17391
2020-03-05 23:53:42 +00:00
Henrik Levkowetz ab173cb2eb Removed further six usage: six.string_types, six.integer_types, six.moves.urllib instances.
- Legacy-Id: 17390
2020-03-05 20:46:58 +00:00
Henrik Levkowetz 566971a6ae Removed further six usage.
- Legacy-Id: 17386
2020-03-05 15:10:33 +00:00
Henrik Levkowetz e9a37d8ac8 Removed six.text_type(), changed six.moves.urllib to plain urllib, and removed now unused six imports.
- Legacy-Id: 17385
2020-03-05 14:41:41 +00:00
Henrik Levkowetz fa4adeb374 Fixed a number of bad Message.content_type settings.
- Legacy-Id: 17339
2020-02-26 17:05:53 +00:00
Jennifer Richards cd77c76372 Add links to user profiles from nominee list and feedback page. Fixes #2839. Commit ready for merge.
- Legacy-Id: 17275
2020-02-05 21:10:47 +00:00
Henrik Levkowetz a33f9724af Merged in [17201] from rjsparks@nostrum.com:
Make it easier for the nomcom chair to manage generic IESG requirements. Fixes #2794.
 - Legacy-Id: 17216
Note: SVN reference [17201] has been migrated to Git commit c9d944b312
2020-01-10 16:16:31 +00:00
Robert Sparks c9d944b312 Make it easier for the nomcom chair to manage generic IESG requirements. Fixes #2794. Commit ready for merge.
- Legacy-Id: 17201
2020-01-08 19:51:14 +00:00
Henrik Levkowetz 2749759216 Fixed a backwards compatibiltiy issue for the factoryboy lib and updated a dependency requirement.
- Legacy-Id: 17115
2019-11-30 13:15:44 +00:00
Robert Sparks cca04b6330 Correct construction for a reverse URL in an edge case. Fixes #2815. Commit ready for merge.
- Legacy-Id: 16907
2019-10-22 18:24:57 +00:00
Henrik Levkowetz 77abc3868e Type checking tweaks.
- Legacy-Id: 16867
2019-10-15 16:54:33 +00:00
Henrik Levkowetz 0c6bca8e59 Merged in [16759] from rjsparks@nostrum.com:
Restrict comments total on nomcom private index to comments on positions. Fixes #2792.
 - Legacy-Id: 16826
Note: SVN reference [16759] has been migrated to Git commit 7aa57e9f57
2019-10-04 20:54:05 +00:00
Henrik Levkowetz 33e8733b91 Fixed up mypy issues or added type:ignore comments as needed for a clean mypy run.
- Legacy-Id: 16772
2019-09-30 15:42:18 +00:00
Robert Sparks 7aa57e9f57 Restrict comments total on nomcom private index to comments on positions. Fixes #2792. Commit ready for merge.
- Legacy-Id: 16759
2019-09-26 21:49:55 +00:00
Henrik Levkowetz aafc66c490 Merged in [16646] from rjsparks@nostrum.com:
Don't manually linewrap when looking at feedback - let the pasted styling do that. Fixes #2761.
 - Legacy-Id: 16706
Note: SVN reference [16646] has been migrated to Git commit 33838840d1
2019-09-05 18:46:24 +00:00
Robert Sparks 33838840d1 Don't manually linewrap when looking at feedback - let the pasted styling do that. Fixes #2761. Commit ready for merge.
- Legacy-Id: 16646
2019-08-12 19:22:39 +00:00
Henrik Levkowetz 8e313e4ed5 Adjusted migrations for Python2/3 compatibility.
- Legacy-Id: 16633
2019-08-08 17:11:14 +00:00
Henrik Levkowetz f47212f239 Use BinaryField instead of our own EncryptedTextField which relied on cleartext and ciphertext being the same type.
- Legacy-Id: 16472
2019-07-16 19:28:45 +00:00
Henrik Levkowetz bdc73e771a Python2/3 compatibility: replaced six.ensure_text() with either six.text_type or django's force_text(), depending on the case, and fixed a variable scope issue.
- Legacy-Id: 16461
2019-07-16 13:20:05 +00:00
Henrik Levkowetz 8c6eb3a30a Python2/3 compatibility: Changed the use of open() and StringIO to io.open() etc.
- Legacy-Id: 16458
2019-07-15 19:14:04 +00:00
Henrik Levkowetz ea8c84d2f6 Python2/3 compatibility: used @python_2_unicode_compatible to provide __unicode__() versions of __str__() methods.
- Legacy-Id: 16455
2019-07-15 18:01:26 +00:00
Henrik Levkowetz a5e31c3f40 Py2/3 compatibility: Added __future__ import.
- Legacy-Id: 16452
2019-07-15 15:52:18 +00:00
Henrik Levkowetz 1fae7839e2 Py2/3 compatibility: Added __future__ import and an explicit encoding scheme, not relying on py3's implicit utf-8
- Legacy-Id: 16447
2019-07-15 15:44:38 +00:00