openSUSE Commits
Threads by month
- ----- 2024 -----
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
April 2019
- 1 participants
- 1906 discussions
Hello community,
here is the log from the commit of package python-emoji for openSUSE:Factory checked in at 2019-04-30 13:00:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-emoji (Old)
and /work/SRC/openSUSE:Factory/.python-emoji.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-emoji"
Tue Apr 30 13:00:32 2019 rev:4 rq:697409 version:0.5.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-emoji/python-emoji.changes 2019-03-01 16:49:55.461742504 +0100
+++ /work/SRC/openSUSE:Factory/.python-emoji.new.5536/python-emoji.changes 2019-04-30 13:00:37.402169433 +0200
@@ -1,0 +2,7 @@
+Wed Apr 24 08:52:16 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 0.5.2
+ * no upstream changelog, see git log
+- run the test suite
+
+-------------------------------------------------------------------
Old:
----
emoji-0.5.1.tar.gz
New:
----
emoji-0.5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-emoji.spec ++++++
--- /var/tmp/diff_new_pack.zR7fEW/_old 2019-04-30 13:00:39.382168992 +0200
+++ /var/tmp/diff_new_pack.zR7fEW/_new 2019-04-30 13:00:39.402168987 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-emoji
-Version: 0.5.1
+Version: 0.5.2
Release: 0
Summary: Emoji for Python
License: BSD-3-Clause
@@ -55,7 +55,7 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}/emoji*
%check
-%python_exec setup.py test
+%python_expand nosetests-%{$python_bin_suffix}
%files %{python_files}
%doc CHANGES.md README.rst
++++++ emoji-0.5.1.tar.gz -> emoji-0.5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emoji-0.5.1/PKG-INFO new/emoji-0.5.2/PKG-INFO
--- old/emoji-0.5.1/PKG-INFO 2018-09-14 04:57:18.000000000 +0200
+++ new/emoji-0.5.2/PKG-INFO 2019-04-06 01:11:04.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: emoji
-Version: 0.5.1
+Version: 0.5.2
Summary: Emoji for Python
Home-page: https://github.com/carpedm20/emoji/
Author: Taehoon Kim and Kevin Wurster
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emoji-0.5.1/emoji/__init__.py new/emoji-0.5.2/emoji/__init__.py
--- old/emoji-0.5.1/emoji/__init__.py 2018-09-14 04:57:08.000000000 +0200
+++ new/emoji-0.5.2/emoji/__init__.py 2019-04-06 01:10:30.000000000 +0200
@@ -25,7 +25,7 @@
from emoji.unicode_codes import UNICODE_EMOJI
from emoji.unicode_codes import UNICODE_EMOJI_ALIAS
-__version__ = '0.5.1'
+__version__ = '0.5.2'
__author__ = 'Taehoon Kim and Kevin Wurster'
__email__ = 'carpedm20(a)gmail.com'
# and wursterk(a)gmail.com
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emoji-0.5.1/emoji/core.py new/emoji-0.5.2/emoji/core.py
--- old/emoji-0.5.1/emoji/core.py 2018-09-14 04:51:48.000000000 +0200
+++ new/emoji-0.5.2/emoji/core.py 2019-04-06 01:10:19.000000000 +0200
@@ -39,7 +39,7 @@
>>> print(emoji.emojize("Python is fun __thumbs_up__", delimiters = ("__", "__")))
Python is fun 👍
"""
-
+
pattern = re.compile(u'(%s[a-zA-Z0-9\+\-_&.ô’Åéãíç()!#*]+%s)' % delimiters)
def replace(match):
@@ -71,7 +71,7 @@
val = unicode_codes.UNICODE_EMOJI.get(match.group(0), match.group(0))
return delimiters[0] + val[1:-1] + delimiters[1]
- return get_emoji_regexp().sub(replace, string)
+ return re.sub(u'\ufe0f','',(get_emoji_regexp().sub(replace, string)))
def get_emoji_regexp():
@@ -112,4 +112,4 @@
if i in unicode_codes.UNICODE_EMOJI:
c=c+1
return(c)
-
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emoji-0.5.1/emoji/unicode_codes.py new/emoji-0.5.2/emoji/unicode_codes.py
--- old/emoji-0.5.1/emoji/unicode_codes.py 2018-09-14 04:51:48.000000000 +0200
+++ new/emoji-0.5.2/emoji/unicode_codes.py 2019-04-06 01:10:19.000000000 +0200
@@ -350,6 +350,7 @@
u':Yemen:': u'\U0001F1FE\U0001F1EA',
u':Zambia:': u'\U0001F1FF\U0001F1F2',
u':Zimbabwe:': u'\U0001F1FF\U0001F1FC',
+ u':abacus:': u'\U0001F9EE',
u':admission_tickets:': u'\U0001F39F',
u':adult:': u'\U0001F9D1',
u':adult_dark_skin_tone:': u'\U0001F9D1\U0001F3FF',
@@ -422,10 +423,15 @@
u':backhand_index_pointing_up_medium-light_skin_tone:': u'\U0001F446\U0001F3FC',
u':backhand_index_pointing_up_medium_skin_tone:': u'\U0001F446\U0001F3FD',
u':bacon:': u'\U0001F953',
+ u':badger:': u'\U0001F9A1',
u':badminton:': u'\U0001F3F8',
+ u':bagel:': u'\U0001F96F',
u':baggage_claim:': u'\U0001F6C4',
u':baguette_bread:': u'\U0001F956',
u':balance_scale:': u'\U00002696',
+ u':bald:': u'\U0001F9B2',
+ u':bald_man:': u'\U0001F468\U0000200D\U0001F9B2',
+ u':bald_woman:': u'\U0001F469\U0000200D\U0001F9B2',
u':balloon:': u'\U0001F388',
u':ballot_box_with_ballot:': u'\U0001F5F3',
u':ballot_box_with_check:': u'\U00002611',
@@ -434,6 +440,7 @@
u':bar_chart:': u'\U0001F4CA',
u':barber_pole:': u'\U0001F488',
u':baseball:': u'\U000026BE',
+ u':basket:': u'\U0001F9FA',
u':basketball:': u'\U0001F3C0',
u':bat:': u'\U0001F987',
u':bathtub:': u'\U0001F6C1',
@@ -494,6 +501,7 @@
u':blue_heart:': u'\U0001F499',
u':boar:': u'\U0001F417',
u':bomb:': u'\U0001F4A3',
+ u':bone:': u'\U0001F9B4',
u':bookmark:': u'\U0001F516',
u':bookmark_tabs:': u'\U0001F4D1',
u':books:': u'\U0001F4DA',
@@ -517,6 +525,7 @@
u':breast-feeding_medium-dark_skin_tone:': u'\U0001F931\U0001F3FE',
u':breast-feeding_medium-light_skin_tone:': u'\U0001F931\U0001F3FC',
u':breast-feeding_medium_skin_tone:': u'\U0001F931\U0001F3FD',
+ u':brick:': u'\U0001F9F1',
u':bride_with_veil:': u'\U0001F470',
u':bride_with_veil_dark_skin_tone:': u'\U0001F470\U0001F3FF',
u':bride_with_veil_light_skin_tone:': u'\U0001F470\U0001F3FB',
@@ -528,6 +537,7 @@
u':bright_button:': u'\U0001F506',
u':broccoli:': u'\U0001F966',
u':broken_heart:': u'\U0001F494',
+ u':broom:': u'\U0001F9F9',
u':bug:': u'\U0001F41B',
u':building_construction:': u'\U0001F3D7',
u':bullet_train:': u'\U0001F685',
@@ -572,6 +582,7 @@
u':chequered_flag:': u'\U0001F3C1',
u':cherries:': u'\U0001F352',
u':cherry_blossom:': u'\U0001F338',
+ u':chess_pawn:': u'\U0000265F',
u':chestnut:': u'\U0001F330',
u':chicken:': u'\U0001F414',
u':child:': u'\U0001F9D2',
@@ -620,8 +631,10 @@
u':cocktail_glass:': u'\U0001F378',
u':coconut:': u'\U0001F965',
u':coffin:': u'\U000026B0',
+ u':cold_face:': u'\U0001F976',
u':collision:': u'\U0001F4A5',
u':comet:': u'\U00002604',
+ u':compass:': u'\U0001F9ED',
u':computer_disk:': u'\U0001F4BD',
u':computer_mouse:': u'\U0001F5B1',
u':confetti_ball:': u'\U0001F38A',
@@ -672,8 +685,12 @@
u':crying_face:': u'\U0001F622',
u':crystal_ball:': u'\U0001F52E',
u':cucumber:': u'\U0001F952',
+ u':cupcake:': u'\U0001F9C1',
u':cup_with_straw:': u'\U0001F964',
u':curling_stone:': u'\U0001F94C',
+ u':curly_hair:': u'\U0001F9B1',
+ u':curly-haired_man:': u'\U0001F468\U0000200D\U0001F9B1',
+ u':curly-haired_woman:': u'\U0001F469\U0000200D\U0001F9B1',
u':curly_loop:': u'\U000027B0',
u':currency_exchange:': u'\U0001F4B1',
u':curry_rice:': u'\U0001F35B',
@@ -705,6 +722,7 @@
u':disappointed_face:': u'\U0001F61E',
u':dizzy:': u'\U0001F4AB',
u':dizzy_face:': u'\U0001F635',
+ u':dna:': u'\U0001F9EC',
u':dog:': u'\U0001F415',
u':dog_face:': u'\U0001F436',
u':dollar_banknote:': u'\U0001F4B5',
@@ -833,6 +851,8 @@
u':film_frames:': u'\U0001F39E',
u':film_projector:': u'\U0001F4FD',
u':fire:': u'\U0001F525',
+ u':fire_extinguisher:': u'\U0001F9EF',
+ u':firecracker:': u'\U0001F9E8',
u':fire_engine:': u'\U0001F692',
u':fireworks:': u'\U0001F386',
u':first_quarter_moon:': u'\U0001F313',
@@ -844,6 +864,7 @@
u':five_o’clock:': u'\U0001F554',
u':flag_in_hole:': u'\U000026F3',
u':flashlight:': u'\U0001F526',
+ u':flat_shoe:': u'\U0001F97F',
u':fleur-de-lis:': u'\U0000269C',
u':flexed_biceps:': u'\U0001F4AA',
u':flexed_biceps_dark_skin_tone:': u'\U0001F4AA\U0001F3FF',
@@ -854,6 +875,7 @@
u':floppy_disk:': u'\U0001F4BE',
u':flower_playing_cards:': u'\U0001F3B4',
u':flushed_face:': u'\U0001F633',
+ u':flying_disc:': u'\U0001F94F',
u':flying_saucer:': u'\U0001F6F8',
u':fog:': u'\U0001F32B',
u':foggy:': u'\U0001F301',
@@ -863,6 +885,7 @@
u':folded_hands_medium-dark_skin_tone:': u'\U0001F64F\U0001F3FE',
u':folded_hands_medium-light_skin_tone:': u'\U0001F64F\U0001F3FC',
u':folded_hands_medium_skin_tone:': u'\U0001F64F\U0001F3FD',
+ u':foot:': u'\U0001F9B6',
u':footprints:': u'\U0001F463',
u':fork_and_knife:': u'\U0001F374',
u':fork_and_knife_with_plate:': u'\U0001F37D',
@@ -907,6 +930,7 @@
u':goal_net:': u'\U0001F945',
u':goat:': u'\U0001F410',
u':goblin:': u'\U0001F47A',
+ u':goggles:': u'\U0001F97D',
u':gorilla:': u'\U0001F98D',
u':graduation_cap:': u'\U0001F393',
u':grapes:': u'\U0001F347',
@@ -965,6 +989,8 @@
u':high-heeled_shoe:': u'\U0001F460',
u':high-speed_train:': u'\U0001F684',
u':high_voltage:': u'\U000026A1',
+ u':hiking_boot:': u'\U0001F97E',
+ u':hippopotamus:': u'\U0001F99B',
u':hole:': u'\U0001F573',
u':honey_pot:': u'\U0001F36F',
u':honeybee:': u'\U0001F41D',
@@ -980,6 +1006,7 @@
u':hospital:': u'\U0001F3E5',
u':hot_beverage:': u'\U00002615',
u':hot_dog:': u'\U0001F32D',
+ u':hot_face:': u'\U0001F975',
u':hot_pepper:': u'\U0001F336',
u':hot_springs:': u'\U00002668',
u':hotel:': u'\U0001F3E8',
@@ -1002,6 +1029,7 @@
u':index_pointing_up_medium-dark_skin_tone:': u'\U0000261D\U0001F3FE',
u':index_pointing_up_medium-light_skin_tone:': u'\U0000261D\U0001F3FC',
u':index_pointing_up_medium_skin_tone:': u'\U0000261D\U0001F3FD',
+ u':infinity:': u'\U0000267E',
u':information:': u'\U00002139',
u':input_latin_letters:': u'\U0001F524',
u':input_latin_lowercase:': u'\U0001F521',
@@ -1010,9 +1038,11 @@
u':input_symbols:': u'\U0001F523',
u':jack-o-lantern:': u'\U0001F383',
u':jeans:': u'\U0001F456',
+ u':jigsaw:': u'\U0001F9E9',
u':joker:': u'\U0001F0CF',
u':joystick:': u'\U0001F579',
u':kaaba:': u'\U0001F54B',
+ u':kangaroo:': u'\U0001F998',
u':key:': u'\U0001F511',
u':keyboard:': u'\U00002328',
u':keycap_#:': u'\U00000023\U0000FE0F\U000020E3',
@@ -1042,7 +1072,9 @@
u':kitchen_knife:': u'\U0001F52A',
u':kiwi_fruit:': u'\U0001F95D',
u':koala:': u'\U0001F428',
+ u':lab_coat:': u'\U0001F97C',
u':label:': u'\U0001F3F7',
+ u':lacrosse:': u'\U0001F94D',
u':lady_beetle:': u'\U0001F41E',
u':laptop_computer:': u'\U0001F4BB',
u':large_blue_diamond:': u'\U0001F537',
@@ -1052,6 +1084,7 @@
u':last_track_button:': u'\U000023EE',
u':latin_cross:': u'\U0000271D',
u':leaf_fluttering_in_wind:': u'\U0001F343',
+ u':leafy_green:': u'\U0001F96C',
u':ledger:': u'\U0001F4D2',
u':left-facing_fist:': u'\U0001F91B',
u':left-facing_fist_dark_skin_tone:': u'\U0001F91B\U0001F3FF',
@@ -1064,6 +1097,7 @@
u':left_arrow_curving_right:': u'\U000021AA',
u':left_luggage:': u'\U0001F6C5',
u':left_speech_bubble:': u'\U0001F5E8',
+ u':leg:': u'\U0001F9B5',
u':lemon:': u'\U0001F34B',
u':leopard:': u'\U0001F406',
u':level_slider:': u'\U0001F39A',
@@ -1075,11 +1109,14 @@
u':lipstick:': u'\U0001F484',
u':litter_in_bin_sign:': u'\U0001F6AE',
u':lizard:': u'\U0001F98E',
+ u':llama:': u'\U0001F999',
+ u':lobster:': u'\U0001F99E',
u':locked:': u'\U0001F512',
u':locked_with_key:': u'\U0001F510',
u':locked_with_pen:': u'\U0001F50F',
u':locomotive:': u'\U0001F682',
u':lollipop:': u'\U0001F36D',
+ u':lotion_bottle:': u'\U0001F9F4',
u':loudly_crying_face:': u'\U0001F62D',
u':loudspeaker:': u'\U0001F4E2',
u':love-you_gesture:': u'\U0001F91F',
@@ -1090,6 +1127,7 @@
u':love-you_gesture_medium_skin_tone:': u'\U0001F91F\U0001F3FD',
u':love_hotel:': u'\U0001F3E9',
u':love_letter:': u'\U0001F48C',
+ u':luggage:': u'\U0001F9F3',
u':lying_face:': u'\U0001F925',
u':mage:': u'\U0001F9D9',
u':mage_dark_skin_tone:': u'\U0001F9D9\U0001F3FF',
@@ -1097,6 +1135,7 @@
u':mage_medium-dark_skin_tone:': u'\U0001F9D9\U0001F3FE',
u':mage_medium-light_skin_tone:': u'\U0001F9D9\U0001F3FC',
u':mage_medium_skin_tone:': u'\U0001F9D9\U0001F3FD',
+ u':magnet:': u'\U0001F9F2',
u':magnifying_glass_tilted_left:': u'\U0001F50D',
u':magnifying_glass_tilted_right:': u'\U0001F50E',
u':mahjong_red_dragon:': u'\U0001F004',
@@ -1452,6 +1491,7 @@
u':man_with_Chinese_cap_medium-light_skin_tone:': u'\U0001F472\U0001F3FC',
u':man_with_Chinese_cap_medium_skin_tone:': u'\U0001F472\U0001F3FD',
u':man_zombie:': u'\U0001F9DF\U0000200D\U00002642\U0000FE0F',
+ u':mango:': u'\U0001F96D',
u':mantelpiece_clock:': u'\U0001F570',
u':man’s_shoe:': u'\U0001F45E',
u':map_of_Japan:': u'\U0001F5FE',
@@ -1485,6 +1525,7 @@
u':merperson_medium-light_skin_tone:': u'\U0001F9DC\U0001F3FC',
u':merperson_medium_skin_tone:': u'\U0001F9DC\U0001F3FD',
u':metro:': u'\U0001F687',
+ u':microbe:': u'\U0001F9A0',
u':microphone:': u'\U0001F3A4',
u':microscope:': u'\U0001F52C',
u':middle_finger:': u'\U0001F595',
@@ -1506,8 +1547,10 @@
u':monkey:': u'\U0001F412',
u':monkey_face:': u'\U0001F435',
u':monorail:': u'\U0001F69D',
+ u':moon_cake:': u'\U0001F96E',
u':moon_viewing_ceremony:': u'\U0001F391',
u':mosque:': u'\U0001F54C',
+ u':mosquito:': u'\U0001F99F',
u':motor_boat:': u'\U0001F6E5',
u':motor_scooter:': u'\U0001F6F5',
u':motorcycle:': u'\U0001F3CD',
@@ -1535,6 +1578,7 @@
u':name_badge:': u'\U0001F4DB',
u':national_park:': u'\U0001F3DE',
u':nauseated_face:': u'\U0001F922',
+ u':nazar_amulet:': u'\U0001F9FF',
u':necktie:': u'\U0001F454',
u':nerd_face:': u'\U0001F913',
u':neutral_face:': u'\U0001F610',
@@ -1631,14 +1675,17 @@
u':pancakes:': u'\U0001F95E',
u':panda_face:': u'\U0001F43C',
u':paperclip:': u'\U0001F4CE',
+ u':parrot:': u'\U0001F99C',
u':part_alternation_mark:': u'\U0000303D',
u':party_popper:': u'\U0001F389',
+ u':partying_face:': u'\U0001F973',
u':passenger_ship:': u'\U0001F6F3',
u':passport_control:': u'\U0001F6C2',
u':pause_button:': u'\U000023F8',
u':paw_prints:': u'\U0001F43E',
u':peace_symbol:': u'\U0000262E',
u':peach:': u'\U0001F351',
+ u':peacock:': u'\U0001F99A',
u':peanuts:': u'\U0001F95C',
u':pear:': u'\U0001F350',
u':pen:': u'\U0001F58A',
@@ -1836,6 +1883,7 @@
u':person_wearing_turban_medium-dark_skin_tone:': u'\U0001F473\U0001F3FE',
u':person_wearing_turban_medium-light_skin_tone:': u'\U0001F473\U0001F3FC',
u':person_wearing_turban_medium_skin_tone:': u'\U0001F473\U0001F3FD',
+ u':petri_dish:': u'\U0001F9EB',
u':pick:': u'\U000026CF',
u':pie:': u'\U0001F967',
u':pig:': u'\U0001F416',
@@ -1846,11 +1894,13 @@
u':pine_decoration:': u'\U0001F38D',
u':pineapple:': u'\U0001F34D',
u':ping_pong:': u'\U0001F3D3',
+ u':pirate_flag:': u'\U0001F3F4\U0000200D\U00002620\U0000FE0F',
u':pistol:': u'\U0001F52B',
u':pizza:': u'\U0001F355',
u':place_of_worship:': u'\U0001F6D0',
u':play_button:': u'\U000025B6',
u':play_or_pause_button:': u'\U000023EF',
+ u':pleading_face:': u'\U0001F97A',
u':police_car:': u'\U0001F693',
u':police_car_light:': u'\U0001F6A8',
u':police_officer:': u'\U0001F46E',
@@ -1900,6 +1950,7 @@
u':question_mark:': u'\U00002753',
u':rabbit:': u'\U0001F407',
u':rabbit_face:': u'\U0001F430',
+ u':raccoon:': u'\U0001F99D',
u':racing_car:': u'\U0001F3CE',
u':radio:': u'\U0001F4FB',
u':radio_button:': u'\U0001F518',
@@ -1934,10 +1985,15 @@
u':raising_hands_medium_skin_tone:': u'\U0001F64C\U0001F3FD',
u':ram:': u'\U0001F40F',
u':rat:': u'\U0001F400',
+ u':receipt:': u'\U0001F9FE',
u':record_button:': u'\U000023FA',
u':recycling_symbol:': u'\U0000267B',
u':red_apple:': u'\U0001F34E',
u':red_circle:': u'\U0001F534',
+ u':red_envelope:': u'\U0001F9E7',
+ u':red_hair:': u'\U0001F9B0',
+ u':red-haired_man:': u'\U0001F468\U0000200D\U0001F9B0',
+ u':red-haired_woman:': u'\U0001F469\U0000200D\U0001F9B0',
u':red_heart:': u'\U00002764',
u':red_paper_lantern:': u'\U0001F3EE',
u':red_triangle_pointed_down:': u'\U0001F53B',
@@ -1970,6 +2026,7 @@
u':roasted_sweet_potato:': u'\U0001F360',
u':robot_face:': u'\U0001F916',
u':rocket:': u'\U0001F680',
+ u':roll_of_paper:': u'\U0001F9FB',
u':rolled-up_newspaper:': u'\U0001F5DE',
u':roller_coaster:': u'\U0001F3A2',
u':rolling_on_the_floor_laughing:': u'\U0001F923',
@@ -1981,6 +2038,8 @@
u':running_shirt:': u'\U0001F3BD',
u':running_shoe:': u'\U0001F45F',
u':sad_but_relieved_face:': u'\U0001F625',
+ u':safety_pin:': u'\U0001F9F7',
+ u':salt:': u'\U0001F9C2',
u':sailboat:': u'\U000026F5',
u':sake:': u'\U0001F376',
u':sandwich:': u'\U0001F96A',
@@ -2029,6 +2088,7 @@
u':sign_of_the_horns_medium_skin_tone:': u'\U0001F918\U0001F3FD',
u':six-thirty:': u'\U0001F561',
u':six_o’clock:': u'\U0001F555',
+ u':skateboard:': u'\U0001F6F9',
u':skier:': u'\U000026F7',
u':skis:': u'\U0001F3BF',
u':skull:': u'\U0001F480',
@@ -2045,6 +2105,7 @@
u':smiling_cat_face_with_heart-eyes:': u'\U0001F63B',
u':smiling_face:': u'\U0000263A',
u':smiling_face_with_halo:': u'\U0001F607',
+ u':smiling_face_with_3_hearts:': u'\U0001F970',
u':smiling_face_with_heart-eyes:': u'\U0001F60D',
u':smiling_face_with_horns:': u'\U0001F608',
u':smiling_face_with_smiling_eyes:': u'\U0001F60A',
@@ -2063,8 +2124,10 @@
u':snowflake:': u'\U00002744',
u':snowman:': u'\U00002603',
u':snowman_without_snow:': u'\U000026C4',
+ u':soap:': u'\U0001F9FC',
u':soccer_ball:': u'\U000026BD',
u':socks:': u'\U0001F9E6',
+ u':softball:': u'\U0001F94E',
u':soft_ice_cream:': u'\U0001F366',
u':spade_suit:': u'\U00002660',
u':spaghetti:': u'\U0001F35D',
@@ -2085,6 +2148,7 @@
u':spiral_notepad:': u'\U0001F5D2',
u':spiral_shell:': u'\U0001F41A',
u':spoon:': u'\U0001F944',
+ u':sponge:': u'\U0001F9FD',
u':sport_utility_vehicle:': u'\U0001F699',
u':sports_medal:': u'\U0001F3C5',
u':spouting_whale:': u'\U0001F433',
@@ -2114,8 +2178,11 @@
u':sunrise:': u'\U0001F305',
u':sunrise_over_mountains:': u'\U0001F304',
u':sunset:': u'\U0001F307',
+ u':superhero:': u'\U0001F9B8',
+ u':supervillain:': u'\U0001F9B9',
u':sushi:': u'\U0001F363',
u':suspension_railway:': u'\U0001F69F',
+ u':swan:': u'\U0001F9A2',
u':sweat_droplets:': u'\U0001F4A6',
u':synagogue:': u'\U0001F54D',
u':syringe:': u'\U0001F489',
@@ -2127,6 +2194,7 @@
u':taxi:': u'\U0001F695',
u':teacup_without_handle:': u'\U0001F375',
u':tear-off_calendar:': u'\U0001F4C6',
+ u':teddy_bear:': u'\U0001F9F8',
u':telephone:': u'\U0000260E',
u':telephone_receiver:': u'\U0001F4DE',
u':telescope:': u'\U0001F52D',
@@ -2135,9 +2203,11 @@
u':ten_o’clock:': u'\U0001F559',
u':tennis:': u'\U0001F3BE',
u':tent:': u'\U000026FA',
+ u':test_tube:': u'\U0001F9EA',
u':thermometer:': u'\U0001F321',
u':thinking_face:': u'\U0001F914',
u':thought_balloon:': u'\U0001F4AD',
+ u':thread:': u'\U0001F9F5',
u':three-thirty:': u'\U0001F55E',
u':three_o’clock:': u'\U0001F552',
u':thumbs_down:': u'\U0001F44E',
@@ -2157,9 +2227,11 @@
u':tiger_face:': u'\U0001F42F',
u':timer_clock:': u'\U000023F2',
u':tired_face:': u'\U0001F62B',
+ u':toolbox:': u'\U0001F9F0',
u':toilet:': u'\U0001F6BD',
u':tomato:': u'\U0001F345',
u':tongue:': u'\U0001F445',
+ u':tooth:': u'\U0001F9B7',
u':top_hat:': u'\U0001F3A9',
u':tornado:': u'\U0001F32A',
u':trackball:': u'\U0001F5B2',
@@ -2254,6 +2326,9 @@
u':white_exclamation_mark:': u'\U00002755',
u':white_flag:': u'\U0001F3F3',
u':white_flower:': u'\U0001F4AE',
+ u':white_hair:': u'\U0001F9B3',
+ u':white-haired_man:': u'\U0001F468\U0000200D\U0001F9B3',
+ u':white-haired_woman:': u'\U0001F469\U0000200D\U0001F9B3',
u':white_heavy_check_mark:': u'\U00002705',
u':white_large_square:': u'\U00002B1C',
u':white_medium-small_square:': u'\U000025FD',
@@ -2614,6 +2689,7 @@
u':women_with_bunny_ears:': u'\U0001F46F\U0000200D\U00002640\U0000FE0F',
u':women_wrestling:': u'\U0001F93C\U0000200D\U00002640\U0000FE0F',
u':women’s_room:': u'\U0001F6BA',
+ u':woozy_face:': u'\U0001F974',
u':world_map:': u'\U0001F5FA',
u':worried_face:': u'\U0001F61F',
u':wrapped_gift:': u'\U0001F381',
@@ -2624,6 +2700,7 @@
u':writing_hand_medium-dark_skin_tone:': u'\U0000270D\U0001F3FE',
u':writing_hand_medium-light_skin_tone:': u'\U0000270D\U0001F3FC',
u':writing_hand_medium_skin_tone:': u'\U0000270D\U0001F3FD',
+ u':yarn:': u'\U0001F9F6',
u':yellow_heart:': u'\U0001F49B',
u':yen_banknote:': u'\U0001F4B4',
u':yin_yang:': u'\U0000262F',
@@ -3399,6 +3476,17 @@
u':keycap_digit_zero:': u'\U00000030\U000020E3',
u':keycap_number_sign:': u'\U00000023\U000020E3',
u':keycap_ten:': u'\U0001F51F',
+ u':zero:': u'\U00000030\U0000FE0F\U000020E3',
+ u':one:': u'\U00000031\U0000FE0F\U000020E3',
+ u':ten:': u'\U0001F51F',
+ u':two:': u'\U00000032\U0000FE0F\U000020E3',
+ u':three:': u'\U00000033\U0000FE0F\U000020E3',
+ u':four:': u'\U00000034\U0000FE0F\U000020E3',
+ u':five:': u'\U00000035\U0000FE0F\U000020E3',
+ u':six:': u'\U00000036\U0000FE0F\U000020E3',
+ u':seven:': u'\U00000037\U0000FE0F\U000020E3',
+ u':eight:': u'\U00000038\U0000FE0F\U000020E3',
+ u':nine:': u'\U00000039\U0000FE0F\U000020E3',
u':kimono:': u'\U0001F458',
u':couplekiss:': u'\U0001F48F',
u':kiss:': u'\U0001F48B',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/emoji-0.5.1/emoji.egg-info/PKG-INFO new/emoji-0.5.2/emoji.egg-info/PKG-INFO
--- old/emoji-0.5.1/emoji.egg-info/PKG-INFO 2018-09-14 04:57:18.000000000 +0200
+++ new/emoji-0.5.2/emoji.egg-info/PKG-INFO 2019-04-06 01:11:04.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: emoji
-Version: 0.5.1
+Version: 0.5.2
Summary: Emoji for Python
Home-page: https://github.com/carpedm20/emoji/
Author: Taehoon Kim and Kevin Wurster
1
0
Hello community,
here is the log from the commit of package python-nosexcover for openSUSE:Factory checked in at 2019-04-30 13:00:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nosexcover (Old)
and /work/SRC/openSUSE:Factory/.python-nosexcover.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nosexcover"
Tue Apr 30 13:00:25 2019 rev:10 rq:697403 version:1.0.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nosexcover/python-nosexcover.changes 2018-12-24 11:40:22.681506095 +0100
+++ /work/SRC/openSUSE:Factory/.python-nosexcover.new.5536/python-nosexcover.changes 2019-04-30 13:00:31.838170674 +0200
@@ -1,0 +2,12 @@
+Wed Apr 24 08:51:35 UTC 2019 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Add license
+
+-------------------------------------------------------------------
+Tue Apr 23 15:06:10 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 1.0.11
+ * Release as a wheel
+- run testsuite
+
+-------------------------------------------------------------------
Old:
----
nosexcover-1.0.10.tar.gz
New:
----
LICENSE.txt
nosexcover-1.0.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nosexcover.spec ++++++
--- /var/tmp/diff_new_pack.VTDSv1/_old 2019-04-30 13:00:33.666170266 +0200
+++ /var/tmp/diff_new_pack.VTDSv1/_new 2019-04-30 13:00:33.706170258 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-nosexcover
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,28 +17,23 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_without test
-
Name: python-nosexcover
-Version: 1.0.10
+Version: 1.0.11
Release: 0
Summary: Extends nose.pluginscover to add Cobertura-style XML reports
-License: BSD-3-Clause
+License: MIT
Group: Development/Languages/Python
-Url: http://github.com/cmheisel/nose-xcover/
-Source: http://pypi.python.org/packages/source/n/nosexcover/nosexcover-%{version}.t…
+URL: https://github.com/cmheisel/nose-xcover/
+Source: https://files.pythonhosted.org/packages/source/n/nosexcover/nosexcover-%{ve…
+Source1: https://raw.githubusercontent.com/cmheisel/nose-xcover/master/LICENSE.txt
BuildRequires: %{python_module coverage}
BuildRequires: %{python_module nose}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-%if %{with test}
-BuildRequires: python-coverage
-%endif
+Requires: python-coverage >= 3.4
Requires: python-nose
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
-
%python_subpackages
%description
@@ -47,6 +42,7 @@
%prep
%setup -q -n nosexcover-%{version}
+cp %{SOURCE1} .
%build
%python_build
@@ -55,13 +51,11 @@
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
-%if %{with test}
%check
-%python_exec setup.py test
-%endif
+%python_expand nosetests-%{$python_bin_suffix} -v
%files %{python_files}
-%defattr(-,root,root,-)
+%license LICENSE.txt
%{python_sitelib}/*
%changelog
++++++ LICENSE.txt ++++++
Copyright (c) 2011 Chris Heisel
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.++++++ nosexcover-1.0.10.tar.gz -> nosexcover-1.0.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/PKG-INFO new/nosexcover-1.0.11/PKG-INFO
--- old/nosexcover-1.0.10/PKG-INFO 2014-03-26 00:30:43.000000000 +0100
+++ new/nosexcover-1.0.11/PKG-INFO 2016-10-30 13:42:23.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: nosexcover
-Version: 1.0.10
+Version: 1.0.11
Summary: Extends nose.plugins.cover to add Cobertura-style XML reports
Home-page: http://github.com/cmheisel/nose-xcover/
Author: Chris Heisel
@@ -15,7 +15,7 @@
Usage
------
- You can not use both --with-xcover and --with-coverage. Using --with-xcover implies --with-coverage
+ You can not use both --with-xcoverage and --with-coverage. Using --with-xcover implies --with-coverage
If you want to change the name of the output file you can use --xcoverage-file=FILE (--cover-xml-file from coverage won't work)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/README.rst new/nosexcover-1.0.11/README.rst
--- old/nosexcover-1.0.10/README.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/nosexcover-1.0.11/README.rst 2016-10-30 13:36:50.000000000 +0100
@@ -0,0 +1,20 @@
+nose-xmlcover
+--------------
+
+A companion to the built-in nose.plugins.cover, this plugin will write out an XML coverage report to a file named coverage.xml.
+
+It will honor all the options you pass to the `Nose coverage plugin <http://somethingaboutorange.com/mrl/projects/nose/1.0.0/plugins/cover.html>`_, especially --cover-package.
+
+Usage
+------
+You can not use both --with-xcoverage and --with-coverage. Using --with-xcover implies --with-coverage
+
+If you want to change the name of the output file you can use --xcoverage-file=FILE (--cover-xml-file from coverage won't work)
+
+As of nose-xcover 1.0.6 --with-xcoverage provides all the functionality of the built-in coverage plugin in addition to Cobertura-style output::
+
+ #nosetests --with-xcoverage {{ coverage options }}
+ nosetests --with-xcoverage --cover-package=myapp --cover-tests
+
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/nosexcover/nosexcover.py new/nosexcover-1.0.11/nosexcover/nosexcover.py
--- old/nosexcover-1.0.10/nosexcover/nosexcover.py 2014-03-26 00:26:10.000000000 +0100
+++ new/nosexcover-1.0.11/nosexcover/nosexcover.py 2016-10-30 13:36:50.000000000 +0100
@@ -6,7 +6,7 @@
import sys
try:
# Python 2
- import StringIO
+ from StringIO import StringIO
except ImportError:
# Python 3
from io import StringIO
@@ -44,9 +44,9 @@
coverage_on = options.enable_plugin_coverage
xcoverage_on = options.enable_plugin_xcoverage
if xcoverage_on and coverage_on:
- log.error(
- """You can not use both --with-xcover and --with-coverage. Using --with-xcover implies --with-coverage""")
- raise TypeError
+ error_msg = """You can not use both --with-xcover and --with-coverage. Using --with-xcover implies --with-coverage"""
+ log.error(error_msg)
+ raise TypeError(error_msg + "\n Please check if you have a default entry in .noserc or nose.cfg or setup.cfg alike configuration file")
cover.old_log = cover.log
cover.log = log
@@ -64,7 +64,7 @@
"""
if not self.xcoverageToStdout:
# This will create a false stream where output will be ignored
- stream = StringIO.StringIO()
+ stream = StringIO()
super(XCoverage, self).report(stream)
if not hasattr(self, 'coverInstance'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/nosexcover.egg-info/PKG-INFO new/nosexcover-1.0.11/nosexcover.egg-info/PKG-INFO
--- old/nosexcover-1.0.10/nosexcover.egg-info/PKG-INFO 2014-03-26 00:30:43.000000000 +0100
+++ new/nosexcover-1.0.11/nosexcover.egg-info/PKG-INFO 2016-10-30 13:42:23.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: nosexcover
-Version: 1.0.10
+Version: 1.0.11
Summary: Extends nose.plugins.cover to add Cobertura-style XML reports
Home-page: http://github.com/cmheisel/nose-xcover/
Author: Chris Heisel
@@ -15,7 +15,7 @@
Usage
------
- You can not use both --with-xcover and --with-coverage. Using --with-xcover implies --with-coverage
+ You can not use both --with-xcoverage and --with-coverage. Using --with-xcover implies --with-coverage
If you want to change the name of the output file you can use --xcoverage-file=FILE (--cover-xml-file from coverage won't work)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/nosexcover.egg-info/SOURCES.txt new/nosexcover-1.0.11/nosexcover.egg-info/SOURCES.txt
--- old/nosexcover-1.0.10/nosexcover.egg-info/SOURCES.txt 2014-03-26 00:30:43.000000000 +0100
+++ new/nosexcover-1.0.11/nosexcover.egg-info/SOURCES.txt 2016-10-30 13:42:23.000000000 +0100
@@ -1,3 +1,5 @@
+README.rst
+setup.cfg
setup.py
nosexcover/__init__.py
nosexcover/nosexcover.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/nosexcover.egg-info/requires.txt new/nosexcover-1.0.11/nosexcover.egg-info/requires.txt
--- old/nosexcover-1.0.10/nosexcover.egg-info/requires.txt 2014-03-26 00:30:43.000000000 +0100
+++ new/nosexcover-1.0.11/nosexcover.egg-info/requires.txt 2016-10-30 13:42:23.000000000 +0100
@@ -1,2 +1,2 @@
nose
-coverage>=3.4
\ No newline at end of file
+coverage>=3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/setup.cfg new/nosexcover-1.0.11/setup.cfg
--- old/nosexcover-1.0.10/setup.cfg 2014-03-26 00:30:43.000000000 +0100
+++ new/nosexcover-1.0.11/setup.cfg 2016-10-30 13:42:23.000000000 +0100
@@ -1,3 +1,6 @@
+[bdist_wheel]
+universal = 1
+
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nosexcover-1.0.10/setup.py new/nosexcover-1.0.11/setup.py
--- old/nosexcover-1.0.10/setup.py 2014-03-26 00:26:47.000000000 +0100
+++ new/nosexcover-1.0.11/setup.py 2016-10-30 13:37:52.000000000 +0100
@@ -7,7 +7,7 @@
setup(
name='nosexcover',
- version='1.0.10',
+ version='1.0.11',
description='Extends nose.plugins.cover to add Cobertura-style XML reports',
long_description=desc,
author='Chris Heisel',
1
0
Hello community,
here is the log from the commit of package python-python-daemon for openSUSE:Factory checked in at 2019-04-30 13:00:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-daemon (Old)
and /work/SRC/openSUSE:Factory/.python-python-daemon.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-daemon"
Tue Apr 30 13:00:19 2019 rev:20 rq:697401 version:2.2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-python-daemon/python-python-daemon.changes 2019-03-22 15:12:07.157293490 +0100
+++ /work/SRC/openSUSE:Factory/.python-python-daemon.new.5536/python-python-daemon.changes 2019-04-30 13:00:21.374173008 +0200
@@ -1,0 +2,5 @@
+Wed Apr 24 11:01:35 CEST 2019 - Matej Cepl <mcepl(a)suse.com>
+
+- Rebuild for jsc#SLE-5706 to be sent to SUSE:SLE-12-SP5:GA.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Hello community,
here is the log from the commit of package rofi-calc for openSUSE:Factory checked in at 2019-04-30 13:00:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rofi-calc (Old)
and /work/SRC/openSUSE:Factory/.rofi-calc.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rofi-calc"
Tue Apr 30 13:00:10 2019 rev:6 rq:697393 version:1.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/rofi-calc/rofi-calc.changes 2019-04-23 14:37:06.493514978 +0200
+++ /work/SRC/openSUSE:Factory/.rofi-calc.new.5536/rofi-calc.changes 2019-04-30 13:00:16.290174142 +0200
@@ -1,0 +2,6 @@
+Wed Apr 24 08:53:23 UTC 2019 - mvetter(a)suse.com
+
+- Update to 1.5:
+ * Fix invalid free in case rofi dir didn't already exist
+
+-------------------------------------------------------------------
Old:
----
v1.4.tar.gz
New:
----
v1.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rofi-calc.spec ++++++
--- /var/tmp/diff_new_pack.aOXEFu/_old 2019-04-30 13:00:18.358173680 +0200
+++ /var/tmp/diff_new_pack.aOXEFu/_new 2019-04-30 13:00:18.362173680 +0200
@@ -17,7 +17,7 @@
Name: rofi-calc
-Version: 1.4
+Version: 1.5
Release: 0
Summary: Calculator for rofi
License: MIT
++++++ v1.4.tar.gz -> v1.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rofi-calc-1.4/README.md new/rofi-calc-1.5/README.md
--- old/rofi-calc-1.4/README.md 2019-04-23 00:30:54.000000000 +0200
+++ new/rofi-calc-1.5/README.md 2019-04-23 18:57:25.000000000 +0200
@@ -18,6 +18,8 @@
The result of the current input can be selected with `Ctrl+Enter`, and history entries can be selected with `Enter`. By default this will just output the equation/result.
+## Advanced Usage
+
Use the `-terse` option to reduce the output of `qalc` to just the result of the input expression.
Use the `-calc-command` option to specify a shell command to execute which will be interpolated with the following keys:
@@ -37,7 +39,7 @@
rofi -show calc -modi calc -no-show-match -no-sort -no-bold
-To disable the history:
+To disable the history, use `-no-history`:
rofi -show calc -modi calc -no-show-match -no-sort -no-history
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rofi-calc-1.4/src/calc.c new/rofi-calc-1.5/src/calc.c
--- old/rofi-calc-1.4/src/calc.c 2019-04-23 00:30:54.000000000 +0200
+++ new/rofi-calc-1.5/src/calc.c 2019-04-23 18:57:25.000000000 +0200
@@ -105,11 +105,16 @@
// Append `input` to history.
static void append_str_to_history(gchar* input) {
GError *error = NULL;
- gchar* history_file = g_build_filename(g_get_user_data_dir(), "rofi", "rofi_calc_history", NULL);
+ gchar* history_dir = g_build_filename(g_get_user_data_dir(), "rofi", NULL);
+ gchar* history_file = g_build_filename(history_dir, "rofi_calc_history", NULL);
gchar* history_contents;
+ gboolean old_history_was_read = FALSE;
+
+ g_mkdir_with_parents(history_dir, 0755);
if (g_file_test(history_file, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
g_file_get_contents(history_file, &history_contents, NULL, &error);
+ old_history_was_read = TRUE;
if (error != NULL) {
g_error("Error while reading the history file: %s", error->message);
@@ -134,8 +139,11 @@
g_free(limited_str);
g_free(new_history);
- g_free(history_contents);
+ if (old_history_was_read) {
+ g_free(history_contents);
+ }
g_free(history_file);
+ g_free(history_dir);
}
1
0
Hello community,
here is the log from the commit of package python-lmfit for openSUSE:Factory checked in at 2019-04-30 13:00:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-lmfit (Old)
and /work/SRC/openSUSE:Factory/.python-lmfit.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-lmfit"
Tue Apr 30 13:00:02 2019 rev:4 rq:697388 version:0.9.13
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-lmfit/python-lmfit.changes 2019-03-06 15:48:55.144426463 +0100
+++ /work/SRC/openSUSE:Factory/.python-lmfit.new.5536/python-lmfit.changes 2019-04-30 13:00:06.906176234 +0200
@@ -1,0 +2,29 @@
+Wed Apr 24 08:42:15 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 0.9.13
+ New features:
+ Clearer warning message in fit reports when uncertainties should
+ but cannot be estimated, including guesses of which Parameters
+ to examine (#521, #543)
+ SplitLorenztianModel and split_lorentzian function (#523)
+ HTML representations for Parameter, MinimizerResult, and Model
+ so that they can be printed better with Jupyter (#524, #548)
+ support parallelization for differential evolution (#526)
+ Bug fixes:
+ delay import of matplotlib (and so, the selection of its backend)
+ as late as possible (#528, #529)
+ fix for saving, loading, and reloading ModelResults (#534)
+ fix to leastsq to report the best-fit values, not the values tried
+ last (#535, #536)
+ fix synchronization of all parameter values on Model.guess() (#539, #542)
+ improve deprecation warnings for outdated nan_policy keywords (#540)
+ fix for edge case in gformat() (#547)
+ Project managements:
+ using pre-commit framework to improve and enforce coding style (#533)
+ added code coverage report to github main page
+ updated docs, github templates, added several tests.
+ dropped support and testing for Python 3.4.
+- deleted patches
+ - lmfit-scipy.patch (upstreamed)
+
+-------------------------------------------------------------------
Old:
----
lmfit-0.9.12.tar.gz
lmfit-scipy.patch
New:
----
lmfit-0.9.13.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-lmfit.spec ++++++
--- /var/tmp/diff_new_pack.DR1mc4/_old 2019-04-30 13:00:07.910176010 +0200
+++ /var/tmp/diff_new_pack.DR1mc4/_new 2019-04-30 13:00:07.914176009 +0200
@@ -18,34 +18,33 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-lmfit
-Version: 0.9.12
+Version: 0.9.13
Release: 0
Summary: Least-Squares Minimization with Bounds and Constraints
License: MIT AND BSD-3-Clause
Group: Development/Languages/Python
Url: https://lmfit.github.io/lmfit-py/
Source: https://files.pythonhosted.org/packages/source/l/lmfit/lmfit-%{version}.tar…
-Patch0: lmfit-scipy.patch
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# SECTION test requirements
-BuildRequires: %{python_module asteval}
-BuildRequires: %{python_module numpy}
+BuildRequires: %{python_module asteval >= 0.9.12}
+BuildRequires: %{python_module numpy >= 1.10}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module scipy}
-BuildRequires: %{python_module six}
-BuildRequires: %{python_module uncertainties}
+BuildRequires: %{python_module scipy >= 0.19}
+BuildRequires: %{python_module six >= 1.10}
+BuildRequires: %{python_module uncertainties >= 3.0}
# /SECTION
-Requires: python-asteval
-Requires: python-numpy
-Requires: python-scipy
-Requires: python-six
+Requires: python-asteval >= 0.9.12
+Requires: python-numpy >= 1.10
+Requires: python-scipy >= 0.19
+Requires: python-six >= 1.10
Recommends: python-dill
Recommends: python-emcee
Recommends: python-matplotlib
Recommends: python-pandas
-Recommends: python-uncertainties
+Recommends: python-uncertainties >= 3.0
BuildArch: noarch
%python_subpackages
@@ -71,7 +70,6 @@
%prep
%setup -q -n lmfit-%{version}
-%patch0 -p1
sed -i -e '/^#!\//, 1d' lmfit/jsonutils.py
%build
++++++ lmfit-0.9.12.tar.gz -> lmfit-0.9.13.tar.gz ++++++
++++ 10350 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-stomp.py for openSUSE:Factory checked in at 2019-04-30 12:59:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-stomp.py (Old)
and /work/SRC/openSUSE:Factory/.python-stomp.py.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-stomp.py"
Tue Apr 30 12:59:56 2019 rev:4 rq:697387 version:4.1.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-stomp.py/python-stomp.py.changes 2018-12-24 11:44:54.633264986 +0100
+++ /work/SRC/openSUSE:Factory/.python-stomp.py.new.5536/python-stomp.py.changes 2019-04-30 12:59:59.506177884 +0200
@@ -1,0 +2,14 @@
+Thu Apr 18 16:12:05 UTC 2019 - Marketa Calabkova <mcalabkova(a)suse.com>
+
+- update to version 4.1.22
+ * Infinite retry attempts
+ * Terminate heartbeat thread on shutdown
+ * Remove unused wait_on_receipt parameter
+ * Reduce verbosity in logging to not include headers unless debug
+ level is turned on (potential security issue)
+ * Fix for disconnect receipt usage in transport
+ * Add __enter__/__exit__ to Connection so it can be used as a
+ context
+ * Additional ssl options
+
+-------------------------------------------------------------------
Old:
----
stomp.py-4.1.21.tar.gz
New:
----
stomp.py-4.1.22.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-stomp.py.spec ++++++
--- /var/tmp/diff_new_pack.NbGD70/_old 2019-04-30 13:00:00.530177656 +0200
+++ /var/tmp/diff_new_pack.NbGD70/_new 2019-04-30 13:00:00.530177656 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-stomp.py
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-stomp.py
-Version: 4.1.21
+Version: 4.1.22
Release: 0
Summary: Python STOMP client
License: Apache-2.0
++++++ stomp.py-4.1.21.tar.gz -> stomp.py-4.1.22.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/CHANGELOG new/stomp.py-4.1.22/CHANGELOG
--- old/stomp.py-4.1.21/CHANGELOG 2018-07-07 10:12:06.000000000 +0200
+++ new/stomp.py-4.1.22/CHANGELOG 2019-04-13 15:01:40.000000000 +0200
@@ -1,4 +1,15 @@
-Version 4.1.21 -
+Version 4.1.22 - Apr 2019
+
+ * Infinite retry attempts (https://github.com/jasonrbriggs/stomp.py/pull/235)
+ * Terminate heartbeat thread on shutdown (https://github.com/jasonrbriggs/stomp.py/pull/234)
+ * Remove unused wait_on_receipt parameter (https://github.com/jasonrbriggs/stomp.py/pull/237)
+ * Reduce verbosity in logging to not include headers unless debug level is turned on (potential security issue as per: https://github.com/jasonrbriggs/stomp.py/issues/226)
+ * Fix for disconnect receipt usage in transport (https://github.com/jasonrbriggs/stomp.py/issues/212)
+ * Add __enter__/__exit__ to Connection so it can be used as a context (https://github.com/jasonrbriggs/stomp.py/issues/215)
+ * Additional ssl options (https://github.com/jasonrbriggs/stomp.py/pull/221/)
+
+
+Version 4.1.21 - July 2018
* Fix for deadlock issue (https://github.com/jasonrbriggs/stomp.py/issues/197)
* Fix for encoding issue (https://github.com/jasonrbriggs/stomp.py/issues/195)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/PKG-INFO new/stomp.py-4.1.22/PKG-INFO
--- old/stomp.py-4.1.21/PKG-INFO 2018-07-07 10:14:14.000000000 +0200
+++ new/stomp.py-4.1.22/PKG-INFO 2019-04-13 15:02:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: stomp.py
-Version: 4.1.21
+Version: 4.1.22
Summary: Python STOMP client, supporting versions 1.0, 1.1 and 1.2 of the protocol
Home-page: https://github.com/jasonrbriggs/stomp.py
Author: Jason R Briggs
@@ -88,7 +88,7 @@
.. _JBossMessaging: http://www.jboss.org/jbossmessaging
- For more info on setting up a test server (using virtualbox), contact the developer.
+ For more info on setting up a local test server (using docker), contact the developer.
Platform: any
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/README.rst new/stomp.py-4.1.22/README.rst
--- old/stomp.py-4.1.21/README.rst 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/README.rst 2019-04-13 15:01:40.000000000 +0200
@@ -80,5 +80,5 @@
.. _JBossMessaging: http://www.jboss.org/jbossmessaging
-For more info on setting up a test server (using virtualbox), contact the developer.
+For more info on setting up a local test server (using docker), contact the developer.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/__init__.py new/stomp.py-4.1.22/stomp/__init__.py
--- old/stomp.py-4.1.21/stomp/__init__.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/__init__.py 2018-12-18 19:41:10.000000000 +0100
@@ -11,8 +11,9 @@
import stomp.connect as connect
import stomp.listener as listener
+import stomp.adapter as adapter
-__version__ = (4, 1, 21)
+__version__ = (4, 1, 22)
##
# Alias for STOMP 1.0 connections.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/__main__.py new/stomp.py-4.1.22/stomp/__main__.py
--- old/stomp.py-4.1.21/stomp/__main__.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/__main__.py 2018-12-20 00:12:36.000000000 +0100
@@ -4,25 +4,28 @@
Usage: stomp [options]
Options:
- --version Show the version number and exit
- -h, --help Show this help message and exit
- -H <host>, --host=<port> Hostname or IP address to connect to. [default: localhost]
- -P <port>, --port=<port> Port providing stomp protocol connections. [default: 61613]
- -U <user>, --user=<user> Username for the connection
+ --version Show the version number and exit
+ -h, --help Show this help message and exit
+ -H <host>, --host=<port> Hostname or IP address to connect to. [default: localhost]
+ -P <port>, --port=<port> Port providing stomp protocol connections. [default: 61613]
+ -U <user>, --user=<user> Username for the connection
-W <password>, --password=<password>
- Password for the connection
+ Password for the connection
-F <filename>, --file=<filename>
- File containing commands to be executed, instead of
- prompting from the command prompt.
+ File containing commands to be executed, instead of
+ prompting from the command prompt.
-S <protocol version>, --protocol=<protocol version>
- Set the STOMP protocol version (1.0, 1.1, 1.2) [default: 1.1]
- -L <queue>, --listen=<queue>
- Listen for messages on a queue/destination
- -V, --verbose Verbose logging "on" or "off" (if on, full headers
- from stomp server responses are printed)
- --ssl Enable SSL connection
- --heartbeats=<heartbeats> Heartbeats to request when connecting with protocol >=
- 1.1 (two comma separated integers required) [default: 0,0]
+ Set the STOMP protocol version (1.0, 1.1, 1.2) [default: 1.1]
+ -L <queue>, --listen=<queue> Listen for messages on a queue/destination
+ -V, --verbose Verbose logging "on" or "off" (if on, full headers
+ from stomp server responses are printed)
+ --heartbeats=<heartbeats> Heartbeats to request when connecting with protocol >=
+ 1.1 (two comma separated integers required) [default: 0,0]
+ --ssl Enable SSL connection
+ --ssl-key-file=<key-file> ssl key file
+ --ssl-cert-file=<cert-file> ssl cert file
+ --ssl-ca-file=<ca-file> ssl ca certs file
+
"""
import base64
@@ -36,8 +39,10 @@
from docopt import docopt
+sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from stomp.adapter.multicast import MulticastConnection
import stomp.colors
+import stomp.utils
from stomp.connect import StompConnection10, StompConnection11, StompConnection12
from stomp.listener import ConnectionListener, StatsListener
@@ -48,11 +53,6 @@
heartbeat_pattern = re.compile(r'[0-9]+,[0-9]+')
-try:
- import uuid
-except ImportError:
- from backward import uuid
-
class SubscriptionInfo(object):
"""
@@ -69,7 +69,7 @@
for more information on establishing a connection to a stomp server.
"""
def __init__(self, host='localhost', port=61613, user='', passcode='', ver='1.1', prompt='> ', verbose=True,
- use_ssl=False, heartbeats=(0, 0), stdin=sys.stdin, stdout=sys.stdout):
+ heartbeats=(0, 0), use_ssl=False, ssl_key_file=None, ssl_cert_file=None, ssl_ca_file=None, stdin=sys.stdin, stdout=sys.stdout):
Cmd.__init__(self, 'Tab', stdin, stdout)
ConnectionListener.__init__(self)
self.__start = True
@@ -89,7 +89,7 @@
else:
raise RuntimeError('Unknown version')
if use_ssl:
- self.conn.set_ssl([(host, port)])
+ self.conn.set_ssl([(host, port)], key_file=ssl_key_file, cert_file=ssl_cert_file, ca_certs=ssl_ca_file)
self.conn.set_listener('', self)
self.conn.start()
self.conn.connect(self.user, self.passcode, wait=True)
@@ -311,7 +311,7 @@
def do_sendrec(self, args):
args = args.split()
- receipt_id = str(uuid.uuid4())
+ receipt_id = stomp.utils.get_uuid()
if len(args) < 2:
self.__error('Expecting: sendrec <destination> <message>')
elif not self.transaction_id:
@@ -530,7 +530,11 @@
heartbeats = tuple(map(int, arguments['--heartbeats'].split(",")))
st = StompCLI(arguments['--host'], arguments['--port'], arguments['--user'], arguments['--password'], arguments['--protocol'],
- prompt, arguments['--verbose'], arguments['--ssl'], heartbeats)
+ prompt, arguments['--verbose'], heartbeats=heartbeats,
+ use_ssl=arguments['--ssl'],
+ ssl_key_file=arguments['--ssl-key-file'],
+ ssl_cert_file=arguments['--ssl-cert-file'],
+ ssl_ca_file=arguments['--ssl-ca-file'])
if arguments['--listen'] is not None:
st.do_subscribe(arguments['--listen'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/connect.py new/stomp.py-4.1.22/stomp/connect.py
--- old/stomp.py-4.1.21/stomp/connect.py 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/connect.py 2019-04-13 15:01:40.000000000 +0200
@@ -8,6 +8,7 @@
from stomp.listener import *
from stomp.protocol import *
from stomp.transport import *
+from stomp.utils import get_uuid
class BaseConnection(Publisher):
@@ -21,6 +22,17 @@
"""
self.transport = transport
+ def __enter__(self):
+ self.disconnect_receipt_id = get_uuid()
+ self.disconnect_listener = WaitingListener(self.disconnect_receipt_id)
+ self.set_listener('ZZZZZ-disconnect-listener', self.disconnect_listener)
+ return self
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ self.disconnect(self.disconnect_receipt_id)
+ self.disconnect_listener.wait_on_receipt()
+ self.disconnect_listener.wait_on_disconnected()
+
def set_listener(self, name, lstnr):
"""
:param str name:
@@ -89,7 +101,6 @@
ssl_cert_file=None,
ssl_ca_certs=None,
ssl_cert_validator=None,
- wait_on_receipt=False,
ssl_version=DEFAULT_SSL_VERSION,
timeout=None,
keepalive=None,
@@ -100,7 +111,7 @@
transport = Transport(host_and_ports, prefer_localhost, try_loopback_connect,
reconnect_sleep_initial, reconnect_sleep_increase, reconnect_sleep_jitter,
reconnect_sleep_max, reconnect_attempts_max, use_ssl, ssl_key_file, ssl_cert_file,
- ssl_ca_certs, ssl_cert_validator, wait_on_receipt, ssl_version, timeout,
+ ssl_ca_certs, ssl_cert_validator, ssl_version, timeout,
keepalive, None, auto_decode, encoding)
BaseConnection.__init__(self, transport)
Protocol10.__init__(self, transport, auto_content_length)
@@ -140,7 +151,6 @@
ssl_cert_file=None,
ssl_ca_certs=None,
ssl_cert_validator=None,
- wait_on_receipt=False,
ssl_version=DEFAULT_SSL_VERSION,
timeout=None,
heartbeats=(0, 0),
@@ -154,7 +164,7 @@
transport = Transport(host_and_ports, prefer_localhost, try_loopback_connect,
reconnect_sleep_initial, reconnect_sleep_increase, reconnect_sleep_jitter,
reconnect_sleep_max, reconnect_attempts_max, use_ssl, ssl_key_file, ssl_cert_file,
- ssl_ca_certs, ssl_cert_validator, wait_on_receipt, ssl_version, timeout,
+ ssl_ca_certs, ssl_cert_validator, ssl_version, timeout,
keepalive, vhost, auto_decode, encoding)
BaseConnection.__init__(self, transport)
Protocol11.__init__(self, transport, heartbeats, auto_content_length, heart_beat_receive_scale=heart_beat_receive_scale)
@@ -194,7 +204,6 @@
ssl_cert_file=None,
ssl_ca_certs=None,
ssl_cert_validator=None,
- wait_on_receipt=False,
ssl_version=DEFAULT_SSL_VERSION,
timeout=None,
heartbeats=(0, 0),
@@ -208,7 +217,7 @@
transport = Transport(host_and_ports, prefer_localhost, try_loopback_connect,
reconnect_sleep_initial, reconnect_sleep_increase, reconnect_sleep_jitter,
reconnect_sleep_max, reconnect_attempts_max, use_ssl, ssl_key_file, ssl_cert_file,
- ssl_ca_certs, ssl_cert_validator, wait_on_receipt, ssl_version, timeout,
+ ssl_ca_certs, ssl_cert_validator, ssl_version, timeout,
keepalive, vhost, auto_decode, encoding)
BaseConnection.__init__(self, transport)
Protocol12.__init__(self, transport, heartbeats, auto_content_length, heart_beat_receive_scale=heart_beat_receive_scale)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/listener.py new/stomp.py-4.1.22/stomp/listener.py
--- old/stomp.py-4.1.21/stomp/listener.py 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/listener.py 2019-04-13 11:06:09.000000000 +0200
@@ -162,6 +162,7 @@
self.received_heartbeat = None
self.heartbeat_thread = None
self.next_outbound_heartbeat = None
+ self.heartbeat_terminate_event = threading.Event()
def on_connected(self, headers, body):
"""
@@ -195,6 +196,7 @@
def on_disconnected(self):
self.running = False
+ self.heartbeat_terminate_event.set()
def on_message(self, headers, body):
"""
@@ -249,6 +251,7 @@
"""
Main loop for sending (and monitoring received) heartbeats.
"""
+ log.info('Starting heartbeat loop')
now = monotonic()
# Setup the initial due time for the outbound heartbeat
@@ -267,7 +270,9 @@
next_events.append(t)
sleep_time = min(next_events)
if sleep_time > 0:
- time.sleep(sleep_time)
+ terminate = self.heartbeat_terminate_event.wait(sleep_time)
+ if terminate:
+ break
now = monotonic()
@@ -298,6 +303,7 @@
for listener in self.transport.listeners.values():
listener.on_heartbeat_timeout()
self.heartbeat_thread = None
+ log.info('Heartbeat loop ended')
class WaitingListener(ConnectionListener):
@@ -308,9 +314,11 @@
"""
:param str receipt:
"""
- self.condition = threading.Condition()
+ self.receipt_condition = threading.Condition()
+ self.disconnect_condition = threading.Condition()
self.receipt = receipt
self.received = False
+ self.disconnected = False
def on_receipt(self, headers, body):
"""
@@ -320,19 +328,31 @@
:param body: the message content
"""
if 'receipt-id' in headers and headers['receipt-id'] == self.receipt:
- with self.condition:
+ with self.receipt_condition:
self.received = True
- self.condition.notify()
+ self.receipt_condition.notify()
+
+ def on_disconnected(self):
+ with self.disconnect_condition:
+ self.disconnected = True
+ self.disconnect_condition.notify()
def wait_on_receipt(self):
"""
Wait until we receive a message receipt.
"""
- with self.condition:
+ with self.receipt_condition:
while not self.received:
- self.condition.wait()
+ self.receipt_condition.wait()
self.received = False
+ def wait_on_disconnected(self):
+ """
+ Wait until disconnected.
+ """
+ with self.disconnect_condition:
+ while not self.disconnected:
+ self.disconnect_condition.wait()
class StatsListener(ConnectionListener):
"""
@@ -368,7 +388,10 @@
:param dict headers: headers in the message
:param body: the message content
"""
- log.info("received an error %s [%s]", body, headers)
+ if log.isEnabledFor(logging.DEBUG):
+ log.debug("received an error %s [%s]", body, headers)
+ else:
+ log.info("received an error %s", body)
self.errors += 1
def on_connecting(self, host_and_port):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/protocol.py new/stomp.py-4.1.22/stomp/protocol.py
--- old/stomp.py-4.1.21/stomp/protocol.py 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/protocol.py 2018-12-19 20:39:06.000000000 +0100
@@ -1,8 +1,6 @@
"""Provides the 1.0, 1.1 and 1.2 protocol classes.
"""
-import uuid
-
from stomp.constants import *
from stomp.exception import ConnectFailedException
from stomp.listener import *
@@ -81,7 +79,7 @@
"""
headers = utils.merge_headers([headers, keyword_headers])
if not transaction:
- transaction = str(uuid.uuid4())
+ transaction = utils.get_uuid()
headers[HDR_TRANSACTION] = transaction
self.send_frame(CMD_BEGIN, headers)
return transaction
@@ -140,7 +138,7 @@
log.debug('Not sending disconnect, already disconnected')
return
headers = utils.merge_headers([headers, keyword_headers])
- rec = receipt or str(uuid.uuid4())
+ rec = receipt or utils.get_uuid()
headers[HDR_RECEIPT] = rec
self.set_receipt(rec, CMD_DISCONNECT)
self.send_frame(CMD_DISCONNECT, headers)
@@ -293,7 +291,7 @@
"""
headers = utils.merge_headers([headers, keyword_headers])
if not transaction:
- transaction = str(uuid.uuid4())
+ transaction = utils.get_uuid()
headers[HDR_TRANSACTION] = transaction
self.send_frame(CMD_BEGIN, headers)
return transaction
@@ -355,7 +353,7 @@
log.debug('Not sending disconnect, already disconnected')
return
headers = utils.merge_headers([headers, keyword_headers])
- rec = receipt or str(uuid.uuid4())
+ rec = receipt or utils.get_uuid()
headers[HDR_RECEIPT] = rec
self.set_receipt(rec, CMD_DISCONNECT)
self.send_frame(CMD_DISCONNECT, headers)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/__init__.py new/stomp.py-4.1.22/stomp/test/__init__.py
--- old/stomp.py-4.1.21/stomp/test/__init__.py 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/__init__.py 2018-12-18 19:41:10.000000000 +0100
@@ -1,7 +1,7 @@
import sys
__all__ = ['basic_test', 'nonascii_test', 'ss_test', 'cli_test', 'cli_ssl_test', 's10_test',
- 's11_test', 's12_test', 'rabbitmq_test', 'stompserver_test',
+ 's11_test', 's12_test', 'activemq_test', 'rabbitmq_test', 'stompserver_test',
'misc_test', 'multicast_test', 'ssl_test', 'utils_test',
'transport_test', 'local_test']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/activemq_test.py new/stomp.py-4.1.22/stomp/test/activemq_test.py
--- old/stomp.py-4.1.21/stomp/test/activemq_test.py 1970-01-01 01:00:00.000000000 +0100
+++ new/stomp.py-4.1.22/stomp/test/activemq_test.py 2018-12-23 01:04:25.000000000 +0100
@@ -0,0 +1,29 @@
+import unittest
+
+import stomp
+from stomp.listener import TestListener
+from stomp.test.testutils import *
+
+
+class TestRabbitMQSend(unittest.TestCase):
+
+ def setUp(self):
+ pass
+
+ def testbasic(self):
+ conn = stomp.Connection11(get_default_host())
+ listener = TestListener('123')
+ conn.set_listener('', listener)
+ conn.connect(get_default_user(), get_default_password(), wait=True)
+ conn.subscribe(destination='/queue/test', id=1, ack='auto')
+
+ conn.send(body='this is a test', destination='/queue/test', receipt='123')
+
+ listener.wait_on_receipt()
+ listener.wait_for_message()
+
+ conn.disconnect(receipt=None)
+
+ self.assertTrue(listener.connections == 1, 'should have received 1 connection acknowledgement')
+ self.assertTrue(listener.messages == 1, 'should have received 1 message')
+ self.assertTrue(listener.errors == 0, 'should not have received any errors')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/apollo_test.py new/stomp.py-4.1.22/stomp/test/apollo_test.py
--- old/stomp.py-4.1.21/stomp/test/apollo_test.py 1970-01-01 01:00:00.000000000 +0100
+++ new/stomp.py-4.1.22/stomp/test/apollo_test.py 2019-04-13 15:01:40.000000000 +0200
@@ -0,0 +1,24 @@
+import unittest
+
+import stomp
+from stomp.listener import WaitingListener
+from stomp.test.testutils import *
+
+
+class TestApolloSend(unittest.TestCase):
+
+ def setUp(self):
+ pass
+
+ def testbasic(self):
+ conn = stomp.Connection11(get_apollo_host())
+ listener = WaitingListener('123')
+ conn.set_listener('', listener)
+ conn.connect(get_default_user(), get_default_password(), wait=True)
+ conn.subscribe(destination='/queue/test', id=1, ack='auto')
+
+ conn.send(body='this is a test', destination='/queue/test', receipt='123')
+
+ listener.wait_on_receipt()
+
+ conn.disconnect(receipt=None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/basic_test.py new/stomp.py-4.1.22/stomp/test/basic_test.py
--- old/stomp.py-4.1.21/stomp/test/basic_test.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/basic_test.py 2018-12-19 20:52:44.000000000 +0100
@@ -190,3 +190,21 @@
self.assertFalse(conn.is_connected(), 'Should not be connected')
except:
self.fail("Shouldn't happen")
+
+class TestContext(unittest.TestCase):
+ def setUp(self):
+ self.timestamp = time.strftime('%Y%m%d%H%M%S')
+
+ def test_with_context(self):
+ with stomp.Connection(get_default_host()) as conn:
+ self.listener = TestListener('123')
+ conn.set_listener('', self.listener)
+ conn.connect(get_default_user(), get_default_password(), wait=True)
+
+ queuename = '/queue/test1-%s' % self.timestamp
+ conn.subscribe(destination=queuename, id=1, ack='auto')
+ conn.send(body='this is a test', destination=queuename, receipt='123')
+ self.listener.wait_for_message()
+
+ self.assertTrue(self.listener.connections == 1, 'should have received 1 connection acknowledgement')
+ self.assertTrue(self.listener.disconnects >= 1, 'should have received 1 disconnect')
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/local_test.py new/stomp.py-4.1.22/stomp/test/local_test.py
--- old/stomp.py-4.1.21/stomp/test/local_test.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/local_test.py 2018-12-18 19:41:10.000000000 +0100
@@ -27,6 +27,7 @@
self.conn.send(body='this is a test', destination=queuename, receipt='123')
self.listener.wait_on_receipt()
+ self.listener.wait_for_message()
self.assertTrue(self.listener.connections == 1, 'should have received 1 connection acknowledgement')
self.assertTrue(self.listener.messages == 1, 'should have received 1 message')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/misc_test.py new/stomp.py-4.1.22/stomp/test/misc_test.py
--- old/stomp.py-4.1.21/stomp/test/misc_test.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/misc_test.py 2018-12-18 19:41:10.000000000 +0100
@@ -51,10 +51,10 @@
class TestMessageTransform(unittest.TestCase):
def setUp(self):
- conn = stomp.Connection(get_default_host())
+ conn = stomp.Connection(get_rabbitmq_host())
listener = TransformationListener('123')
conn.set_listener('', listener)
- conn.connect(get_default_user(), get_default_password(), wait=True)
+ conn.connect(get_rabbitmq_user(), get_rabbitmq_password(), wait=True)
self.conn = conn
self.listener = listener
self.timestamp = time.strftime('%Y%m%d%H%M%S')
@@ -78,11 +78,12 @@
</entry>
</map>''', destination=queuename, headers={'transformation': 'jms-map-xml'}, receipt='123')
+ self.listener.wait_on_receipt()
self.listener.wait_for_message()
self.assertTrue(self.listener.message is not None, 'Did not receive a message')
self.assertTrue(self.listener.message.__class__ == dict,
- 'Message type should be dict after transformation, was %s' % self.listener.message.__class__)
+ 'Message type should be dict after transformation, was %s' % self.listener.message.__class__)
self.assertTrue(self.listener.message['name'] == 'Dejan', 'Missing an expected dict element')
self.assertTrue(self.listener.message['city'] == 'Belgrade', 'Missing an expected dict element')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/multicast_test.py new/stomp.py-4.1.22/stomp/test/multicast_test.py
--- old/stomp.py-4.1.21/stomp/test/multicast_test.py 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/multicast_test.py 2019-04-13 15:01:40.000000000 +0200
@@ -1,10 +1,10 @@
import time
import unittest
-import uuid
from stomp.adapter.multicast import MulticastConnection
from stomp.listener import TestListener
from stomp.test.testutils import *
+from stomp.utils import get_uuid
class TestMulticast(unittest.TestCase):
@@ -58,7 +58,7 @@
queuename = '/queue/test1-%s' % self.timestamp
self.conn.subscribe(destination=queuename, id=1, ack='auto')
- trans_id = str(uuid.uuid4())
+ trans_id = get_uuid()
self.conn.begin(trans_id)
self.conn.send(body='this is a test', transaction=trans_id, destination=queuename, receipt='123')
@@ -113,7 +113,4 @@
(_, msg) = self.listener.get_latest_message()
- if sys.hexversion >= 0x03000000:
- self.assertEqual(txt, msg)
- else:
- self.assertEqual(txt.encode('utf-8'), msg)
+ self.assertEqual(txt.encode('utf-8'), msg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/s11_test.py new/stomp.py-4.1.22/stomp/test/s11_test.py
--- old/stomp.py-4.1.21/stomp/test/s11_test.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/s11_test.py 2019-04-13 11:06:09.000000000 +0200
@@ -80,3 +80,37 @@
server.stop()
self.assertTrue(listener.heartbeat_timeouts >= 1, 'should have received a heartbeat timeout')
+
+ def testheartbeat_shutdown(self):
+ server = TestStompServer('127.0.0.1', 60000)
+ server.start()
+ conn = None
+ try:
+ server.add_frame('''CONNECTED
+ version:1.1
+ session:1
+ server:test
+ heart-beat:1000,1000
+
+ \x00''')
+
+ conn = stomp.Connection([('127.0.0.1', 60000)], heartbeats=(10000, 10000))
+ listener = TestListener()
+ conn.set_listener('', listener)
+ conn.connect()
+
+ start_time = time.time()
+ time.sleep(0.5)
+ # shutdown connection
+ server.stop()
+ while conn.heartbeat_thread is not None:
+ time.sleep(0.5)
+ end_time = time.time()
+
+ server.running = False
+ except Exception:
+ _, e, _ = sys.exc_info()
+ log.error("Error: %s", e)
+
+ self.assertLessEqual(end_time - start_time, 2, 'should stop immediately and not after heartbeat timeout')
+ self.assertIsNone(conn.heartbeat_thread, 'heartbeat thread should have finished')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/s12_test.py new/stomp.py-4.1.22/stomp/test/s12_test.py
--- old/stomp.py-4.1.21/stomp/test/s12_test.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/s12_test.py 2018-12-18 19:41:10.000000000 +0100
@@ -111,7 +111,8 @@
self.assertTrue('special-3' in headers)
self.assertEqual('test with newlines \n \n', headers['special-3'])
self.assertTrue('special-4' in headers)
- self.assertEqual('test with carriage return \r', headers['special-4'])
+ cr_header = headers['special-4'].replace('\\r', '\r')
+ self.assertEqual('test with carriage return \r', cr_header)
def test_suppress_content_length(self):
queuename = '/queue/testspecialchars12-%s' % self.timestamp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/setup.ini new/stomp.py-4.1.22/stomp/test/setup.ini
--- old/stomp.py-4.1.21/stomp/test/setup.ini 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/setup.ini 2018-12-23 00:35:35.000000000 +0100
@@ -1,24 +1,28 @@
[default]
-host = 10.0.0.20
-port = 61613
+host = 172.17.0.2
+port = 62613
ssl_port = 62614
user = admin
password = password
[ipv6]
-host = fe80::a00:27ff:fe90:3f1a%wlp58s0
+host = 2001:db8:1234:5678:9abc:242:ac11:2
port = 62613
[rabbitmq]
-host = 10.0.0.113
+host = 172.17.0.2
port = 61613
user = guest
password = guest
[stompserver]
-host = 10.0.0.113
+host = 172.17.0.2
port = 63613
[sni]
host = my.example.com
ssl_port = 65001
+
+[apollo]
+host = 172.17.0.2
+port = 64613
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/ssl_test.py new/stomp.py-4.1.22/stomp/test/ssl_test.py
--- old/stomp.py-4.1.21/stomp/test/ssl_test.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/ssl_test.py 2018-12-18 19:41:10.000000000 +0100
@@ -20,12 +20,14 @@
conn = stomp.Connection(get_default_ssl_host())
conn.set_ssl(get_default_ssl_host())
conn.set_listener('', self.listener)
- conn.connect('admin', 'password', wait=True)
+ conn.connect(get_default_user(), get_default_password(), wait=True)
conn.subscribe(destination=queuename, id=1, ack='auto')
conn.send(body='this is a test', destination=queuename, receipt='123')
self.listener.wait_on_receipt()
+ self.listener.wait_for_message()
+
conn.disconnect(receipt=None)
self.assertTrue(self.listener.connections == 1, 'should have received 1 connection acknowledgement')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/stompserver_test.py new/stomp.py-4.1.22/stomp/test/stompserver_test.py
--- old/stomp.py-4.1.21/stomp/test/stompserver_test.py 2018-06-29 13:37:36.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/stompserver_test.py 2018-12-18 19:41:10.000000000 +0100
@@ -20,6 +20,7 @@
conn.send(body='this is a test', destination='/queue/test', receipt='123')
listener.wait_on_receipt()
+ listener.wait_for_message()
conn.unsubscribe('/queue/test')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/test/testutils.py new/stomp.py-4.1.22/stomp/test/testutils.py
--- old/stomp.py-4.1.21/stomp/test/testutils.py 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/test/testutils.py 2018-12-23 00:36:33.000000000 +0100
@@ -95,6 +95,10 @@
port = config.get('stompserver', 'port')
return [(get_environ('STOMPSERVER_HOST') or host, int(get_environ('STOMPSERVER_PORT') or port))]
+def get_apollo_host():
+ host = config.get('apollo', 'host')
+ port = config.get('apollo', 'port')
+ return [(get_environ('APOLLO_HOST') or host, int(get_environ('APOLLO_PORT') or port))]
class TestStompServer(object):
def __init__(self, host, port):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/transport.py new/stomp.py-4.1.22/stomp/transport.py
--- old/stomp.py-4.1.21/stomp/transport.py 2018-06-30 12:51:09.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/transport.py 2019-04-13 15:01:40.000000000 +0200
@@ -51,7 +51,6 @@
and anything else outside of actually establishing a network connection, sending and
receiving of messages (so generally socket-agnostic functions).
- :param bool wait_on_receipt: deprecated, ignored
:param bool auto_decode: automatically decode message responses as strings, rather than
leaving them as bytes. This preserves the behaviour as of version 4.0.16.
(To be defaulted to False as of the next release)
@@ -63,7 +62,7 @@
#
__content_length_re = re.compile(b'^content-length[:]\\s*(?P<value>[0-9]+)', re.MULTILINE)
- def __init__(self, wait_on_receipt=False, auto_decode=True, encoding='utf-8'):
+ def __init__(self, auto_decode=True, encoding='utf-8'):
self.__recvbuf = b''
self.listeners = {}
self.running = False
@@ -189,7 +188,7 @@
if log.isEnabledFor(logging.DEBUG):
log.debug("Received frame: %r, headers=%r, body=%r", f.cmd, f.headers, f.body)
else:
- log.info("Received frame: %r, headers=%r, len(body)=%r", f.cmd, f.headers, utils.length(f.body))
+ log.info("Received frame: %r, len(body)=%r", f.cmd, utils.length(f.body))
self.notify(frame_type, f.headers, f.body)
else:
log.warning("Unknown response frame type: '%s' (frame length was %d)", frame_type, utils.length(frame_str))
@@ -210,12 +209,12 @@
self.set_receipt(receipt, None)
self.__send_wait_condition.notify()
- # received a stomp 1.1+ disconnect receipt
- if receipt == self.__disconnect_receipt:
- self.disconnect_socket()
-
if receipt_value == CMD_DISCONNECT:
self.set_connected(False)
+ # received a stomp 1.1+ disconnect receipt
+ if receipt == self.__disconnect_receipt:
+ self.disconnect_socket()
+ self.__disconnect_receipt = None
elif frame_type == 'connected':
self.set_connected(True)
@@ -224,9 +223,9 @@
self.set_connected(False)
with self.__listeners_change_condition:
- listeners = list(self.listeners.values())
+ listeners = sorted(self.listeners.items())
- for listener in listeners:
+ for (_, listener) in listeners:
if not listener:
continue
@@ -258,9 +257,9 @@
:param Frame frame: the Frame object to transmit
"""
with self.__listeners_change_condition:
- listeners = list(self.listeners.values())
+ listeners = sorted(self.listeners.items())
- for listener in listeners:
+ for (_, listener) in listeners:
if not listener:
continue
try:
@@ -268,13 +267,16 @@
except AttributeError:
continue
+ if frame.cmd == CMD_DISCONNECT and HDR_RECEIPT in frame.headers:
+ self.__disconnect_receipt = frame.headers[HDR_RECEIPT]
+
lines = utils.convert_frame(frame)
packed_frame = pack(lines)
if log.isEnabledFor(logging.DEBUG):
log.debug("Sending frame: %s", lines)
else:
- log.info("Sending frame: %r, headers=%r", frame.cmd or "heartbeat", utils.clean_headers(frame.headers))
+ log.info("Sending frame: %r", frame.cmd or "heartbeat")
self.send(packed_frame)
def send(self, encoded_frame):
@@ -472,7 +474,7 @@
stampeding. For example, a value of 0.1 means to wait
an extra 0%-10% (randomly determined) of the delay
calculated using the previous three parameters.
- :param int reconnect_attempts_max: maximum attempts to reconnect
+ :param int reconnect_attempts_max: maximum attempts to reconnect (Can also be used for infinite attempts : `-1`)
:param bool use_ssl: deprecated, see :py:meth:`set_ssl`
:param ssl_cert_file: deprecated, see :py:meth:`set_ssl`
:param ssl_key_file: deprecated, see :py:meth:`set_ssl`
@@ -480,7 +482,6 @@
:param ssl_cert_validator: deprecated, see :py:meth:`set_ssl`
:param ssl_version: deprecated, see :py:meth:`set_ssl`
:param timeout: the timeout value to use when connecting the stomp socket
- :param bool wait_on_receipt: deprecated, ignored
:param keepalive: some operating systems support sending the occasional heart
beat packets to detect when a connection fails. This
parameter can either be set set to a boolean to turn on the
@@ -505,7 +506,6 @@
ssl_cert_file=None,
ssl_ca_certs=None,
ssl_cert_validator=None,
- wait_on_receipt=False,
ssl_version=None,
timeout=None,
keepalive=None,
@@ -514,7 +514,7 @@
encoding='utf-8',
recv_bytes=1024
):
- BaseTransport.__init__(self, wait_on_receipt, auto_decode, encoding)
+ BaseTransport.__init__(self, auto_decode, encoding)
if host_and_ports is None:
host_and_ports = [('localhost', 61613)]
@@ -725,7 +725,9 @@
sleep_exp = 1
connect_count = 0
- while self.running and self.socket is None and connect_count < self.__reconnect_attempts_max:
+ while self.running and self.socket is None and (
+ connect_count < self.__reconnect_attempts_max or
+ self.__reconnect_attempts_max == -1 ):
for host_and_port in self.__host_and_ports:
try:
log.info("Attempting connection to host %s, port %s", host_and_port[0], host_and_port[1])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp/utils.py new/stomp.py-4.1.22/stomp/utils.py
--- old/stomp.py-4.1.21/stomp/utils.py 2018-06-30 11:50:26.000000000 +0200
+++ new/stomp.py-4.1.22/stomp/utils.py 2018-12-19 20:39:06.000000000 +0100
@@ -9,6 +9,10 @@
from stomp.backward import encode, decode, NULL
from stomp.constants import *
+try:
+ import uuid
+except ImportError:
+ from backward import uuid
# List of all host names (unqualified, fully-qualified, and IP
# addresses) that refer to the local host (both loopback interface
@@ -271,3 +275,7 @@
def __str__(self):
return '{cmd=%s,headers=[%s],body=%s}' % (self.cmd, self.headers, self.body)
+
+
+def get_uuid():
+ return str(uuid.uuid4())
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp.py.egg-info/PKG-INFO new/stomp.py-4.1.22/stomp.py.egg-info/PKG-INFO
--- old/stomp.py-4.1.21/stomp.py.egg-info/PKG-INFO 2018-07-07 10:14:14.000000000 +0200
+++ new/stomp.py-4.1.22/stomp.py.egg-info/PKG-INFO 2019-04-13 15:02:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: stomp.py
-Version: 4.1.21
+Version: 4.1.22
Summary: Python STOMP client, supporting versions 1.0, 1.1 and 1.2 of the protocol
Home-page: https://github.com/jasonrbriggs/stomp.py
Author: Jason R Briggs
@@ -88,7 +88,7 @@
.. _JBossMessaging: http://www.jboss.org/jbossmessaging
- For more info on setting up a test server (using virtualbox), contact the developer.
+ For more info on setting up a local test server (using docker), contact the developer.
Platform: any
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stomp.py-4.1.21/stomp.py.egg-info/SOURCES.txt new/stomp.py-4.1.22/stomp.py.egg-info/SOURCES.txt
--- old/stomp.py-4.1.21/stomp.py.egg-info/SOURCES.txt 2018-07-07 10:14:14.000000000 +0200
+++ new/stomp.py-4.1.22/stomp.py.egg-info/SOURCES.txt 2019-04-13 15:02:15.000000000 +0200
@@ -31,6 +31,8 @@
stomp/adapter/__init__.py
stomp/adapter/multicast.py
stomp/test/__init__.py
+stomp/test/activemq_test.py
+stomp/test/apollo_test.py
stomp/test/basic_test.py
stomp/test/cli_ssl_test.py
stomp/test/cli_test.py
1
0
Hello community,
here is the log from the commit of package python-sphinxcontrib-programoutput for openSUSE:Factory checked in at 2019-04-30 12:59:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sphinxcontrib-programoutput (Old)
and /work/SRC/openSUSE:Factory/.python-sphinxcontrib-programoutput.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sphinxcontrib-programoutput"
Tue Apr 30 12:59:49 2019 rev:5 rq:697385 version:0.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sphinxcontrib-programoutput/python-sphinxcontrib-programoutput.changes 2018-12-24 11:44:37.737279957 +0100
+++ /work/SRC/openSUSE:Factory/.python-sphinxcontrib-programoutput.new.5536/python-sphinxcontrib-programoutput.changes 2019-04-30 12:59:54.666178964 +0200
@@ -1,0 +2,15 @@
+Tue Apr 23 11:54:16 UTC 2019 - Marketa Calabkova <mcalabkova(a)suse.com>
+
+- update to version 0.14
+ * Add python_requires metadata to better allow tools like pip to
+ install a correct version.
+ * Add support for Sphinx 2.0 on Python 3.
+ * Avoid unicode errors when the program command or output produced
+ non-ASCII output and the configured prompt was a byte string.
+ * Drop support for Sphinx < 1.7.
+ * Fix tests on Sphinx >= 1.8.0.
+ * Fix deprecation warnings on Sphinx >= 1.8.
+ * Explicitly set parallel_read_safe to true in the extension
+ metadata.
+
+-------------------------------------------------------------------
Old:
----
sphinxcontrib-programoutput-0.10.tar.gz
New:
----
sphinxcontrib-programoutput-0.14.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sphinxcontrib-programoutput.spec ++++++
--- /var/tmp/diff_new_pack.1ApOJK/_old 2019-04-30 12:59:56.374178583 +0200
+++ /var/tmp/diff_new_pack.1ApOJK/_new 2019-04-30 12:59:56.374178583 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-sphinxcontrib-programoutput
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,20 +17,20 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_with test
+%bcond_without test
Name: python-sphinxcontrib-programoutput
-Version: 0.10
+Version: 0.14
Release: 0
Summary: Sphinx extension to include program output
License: BSD-2-Clause
Group: Development/Languages/Python
URL: http://sphinxcontrib-programoutput.readthedocs.org/
Source: https://files.pythonhosted.org/packages/source/s/sphinxcontrib-programoutpu…
-BuildRequires: %{python_module Sphinx}
+BuildRequires: %{python_module Sphinx >= 1.8}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-Sphinx
+Requires: python-Sphinx >= 1.8
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module pytest}
@@ -54,9 +54,7 @@
%if %{with test}
%check
export LANG=en_US.UTF-8
-%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
-py.test-%{$python_bin_suffix}
-}
+%python_exec setup.py test
%endif
%files %{python_files}
++++++ sphinxcontrib-programoutput-0.10.tar.gz -> sphinxcontrib-programoutput-0.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/.travis.yml new/sphinxcontrib-programoutput-0.14/.travis.yml
--- old/sphinxcontrib-programoutput-0.10/.travis.yml 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/.travis.yml 2019-04-08 20:00:33.000000000 +0200
@@ -1,24 +1,33 @@
+group: travis_latest
language: python
-sudo: false
git:
depth: 1
python:
- - pypy-5.4.1
- 2.7
- 3.5
-# Pylint is not supported on 3.6 yet. See
-# https://github.com/PyCQA/pylint/issues/1113 et al.
-env:
- matrix:
- - ENV=latest
- - ENV=oldest
+ - 3.6
+ - pypy
+ - pypy3
+# As of Apr 2019, we can't use Python 3.7 at the top-level
+# without using 'dist: xenial' at the top level. But that
+# breaks PyPy and PyPy3 (they can't be installed)
matrix:
-# Only run the oldest environment once
- exclude:
- - python: 3.6
- env: ENV=oldest
- - python: pypy-5.4.1
- env: ENV=oldest
+ include:
+ - python: "3.7"
+ dist: xenial
+
+env:
+ global:
+ - PYTHONWARNINGS="ignore:'U' mode is deprecated:DeprecationWarning::"
+
+before_install:
+ - python --version
+
+install:
+ - pip install -U pip setuptools
+ - pip install -U coverage coveralls pylint
+ - pip install -U -e .[test]
+
script:
- pylint -r no src/sphinxcontrib
- coverage run setup.py test
@@ -27,14 +36,6 @@
notifications:
email: false
-before_install:
- - python --version
-
-install:
- - pip install -U pip setuptools
- - pip install -U coverage coveralls pylint
- - if [[ $ENV == latest ]]; then pip install -U -e .[test]; fi
- - if [[ $ENV == oldest ]]; then pip install Sphinx==1.3.5 && pip install -e .[test]; fi
cache: pip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/CHANGES.rst new/sphinxcontrib-programoutput-0.14/CHANGES.rst
--- old/sphinxcontrib-programoutput-0.10/CHANGES.rst 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/CHANGES.rst 2019-04-08 20:00:33.000000000 +0200
@@ -1,3 +1,45 @@
+=========
+ Changes
+=========
+
+0.14 (2019-04-08)
+=================
+
+- Add ``python_requires`` metadata to better allow tools like ``pip``
+ to install a correct version.
+
+- Add support for Sphinx 2.0 on Python 3.
+
+- Avoid unicode errors when the program command or output produced
+ non-ASCII output and the configured prompt was a byte string. This
+ was most likely under Python 2, where the default configured prompt
+ is a byte string. Reported by, and patch inspired by, `issue 33
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/33>`_
+ by latricewilgus.
+
+0.13 (2018-12-22)
+=================
+
+- Drop support for Sphinx < 1.7.
+
+- Fix tests on Sphinx >= 1.8.0.
+
+- Restore error message into the document by default from failed
+ program runs on Sphinx >= 1.8.0b1.
+
+- Fix deprecation warnings on Sphinx >= 1.8. Reported in `issue 29
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/29>`_
+ by miili.
+
+
+0.11 (2017-05-18)
+=================
+
+- Explicitly set ``parallel_read_safe`` to true in the extension
+ metadata. See `issue 25
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/25>`_.
+ With thanks to Adam J. Stewart and Stephen McDowell.
+
0.10 (2017-03-17)
=================
@@ -16,7 +58,9 @@
- Run the tests on Travis CI. Formatting and style is enforced by pylint.
- The oldest supported and tested Sphinx version is now 1.3.5. See
- :issue:`17`.
+ `issue 17
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/17>`_.
+
- Remove support for Python 2.6, Python 3.2 and 3.3.
@@ -34,7 +78,7 @@
0.7 (Apr 17, 2012)
==================
-- Added ``cwd`` option to :rst:dir:`program-output`
+- Added ``cwd`` option to ``..program-output``
- Working directory of executed programs defaults to documentation root now
@@ -48,16 +92,16 @@
0.5 (Sep 19, 2011)
==================
-- :confval:`programoutput_prompt_template` is interpreted as format string now!
+- ``programoutput_prompt_template`` is interpreted as format string now!
- Require Python 2.6 now
-- Added ``returncode`` option to :rst:dir:`program-output` (thanks to Jan-Marek
- Glogowski)
+- Added ``returncode`` option to ``program-output`` (thanks to
+ Jan-Marek Glogowski)
- Support ``returncode`` formatting key in
- :confval:`programoutput_prompt_template`
+ ``programoutput_prompt_template``
- Warn on unexpected return codes instead of raising
- :py:exc:`~subprocess.CalledProcessError`
-- Turn fatal errors during command into document error messages instead of
- crashing the build
+ ``subprocess.CalledProcessError``
+- Turn fatal errors during command into document error messages
+ instead of crashing the build
0.4.1 (Mar 11, 2011)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/PKG-INFO new/sphinxcontrib-programoutput-0.14/PKG-INFO
--- old/sphinxcontrib-programoutput-0.10/PKG-INFO 2017-03-17 16:39:02.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/PKG-INFO 2019-04-08 20:00:34.000000000 +0200
@@ -1,12 +1,13 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: sphinxcontrib-programoutput
-Version: 0.10
+Version: 0.14
Summary: Sphinx extension to include program output
Home-page: https://sphinxcontrib-programoutput.readthedocs.org/
-Author: Jason Madden
-Author-email: jason(a)nextthought.com
+Author: Sebastian Wiesner
+Author-email: lunaryorn(a)gmail.com
+Maintainer: Jason Madden
+Maintainer-email: jason(a)nextthought.com
License: BSD
-Download-URL: https://pypi.python.org/pypi/sphinxcontrib-programoutput
Description: =============================
sphinxcontrib-programoutput
=============================
@@ -18,8 +19,7 @@
:target: https://coveralls.io/github/NextThought/sphinxcontrib-programoutput
-
- http://sphinxcontrib-programoutput.readthedocs.org
+ https://sphinxcontrib-programoutput.readthedocs.org
A Sphinx_ extension to literally insert the output of arbitrary commands into
documents, helping you to keep your command examples up to date.
@@ -32,7 +32,7 @@
pip install sphinxcontrib-programoutput
- The extension requires Sphinx 1.3.5 and Python 2.7 or Python 3 (Python
+ The extension requires Sphinx 1.7.0 and Python 2.7 or Python 3 (Python
3.5+ is tested) at least.
Usage
@@ -76,6 +76,126 @@
.. _PyPI: http://pypi.python.org/pypi/sphinxcontrib-programoutput
.. _documentation: http://sphinxcontrib-programoutput.readthedocs.org
+
+ =========
+ Changes
+ =========
+
+ 0.14 (2019-04-08)
+ =================
+
+ - Add ``python_requires`` metadata to better allow tools like ``pip``
+ to install a correct version.
+
+ - Add support for Sphinx 2.0 on Python 3.
+
+ - Avoid unicode errors when the program command or output produced
+ non-ASCII output and the configured prompt was a byte string. This
+ was most likely under Python 2, where the default configured prompt
+ is a byte string. Reported by, and patch inspired by, `issue 33
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/33>`_
+ by latricewilgus.
+
+ 0.13 (2018-12-22)
+ =================
+
+ - Drop support for Sphinx < 1.7.
+
+ - Fix tests on Sphinx >= 1.8.0.
+
+ - Restore error message into the document by default from failed
+ program runs on Sphinx >= 1.8.0b1.
+
+ - Fix deprecation warnings on Sphinx >= 1.8. Reported in `issue 29
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/29>`_
+ by miili.
+
+
+ 0.11 (2017-05-18)
+ =================
+
+ - Explicitly set ``parallel_read_safe`` to true in the extension
+ metadata. See `issue 25
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/25>`_.
+ With thanks to Adam J. Stewart and Stephen McDowell.
+
+ 0.10 (2017-03-17)
+ =================
+
+ - Decode output from the program tolerantly, using the 'replace'
+ handler. Based on a `pull request
+ <https://github.com/habnabit/sphinxcontrib-programoutput/commit/592078e0386c…>`_
+ by Stefan C. Müller.
+
+
+ 0.9 (2017-03-15)
+ ================
+
+ - Forked and revived the project in `Gitub
+ <https://github.com/NextThought/sphinxcontrib-programoutput>`_.
+
+ - Run the tests on Travis CI. Formatting and style is enforced by pylint.
+
+ - The oldest supported and tested Sphinx version is now 1.3.5. See
+ `issue 17
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/17>`_.
+
+
+ - Remove support for Python 2.6, Python 3.2 and 3.3.
+
+ - 100% test coverage.
+
+ - Remove support for ``programoutput_use_ansi``. The
+ ``sphinxcontrib.ansi`` extension is no longer available on PyPI.
+
+ 0.8 (Oct 12, 2012)
+ ==================
+
+ - Migrated to GitHub
+
+
+ 0.7 (Apr 17, 2012)
+ ==================
+
+ - Added ``cwd`` option to ``..program-output``
+ - Working directory of executed programs defaults to documentation root now
+
+
+ 0.6 (Jan 07, 2012)
+ ==================
+
+ - Python 3 support
+ - Require Sphinx 1.1 now
+
+
+ 0.5 (Sep 19, 2011)
+ ==================
+
+ - ``programoutput_prompt_template`` is interpreted as format string now!
+ - Require Python 2.6 now
+ - Added ``returncode`` option to ``program-output`` (thanks to
+ Jan-Marek Glogowski)
+ - Support ``returncode`` formatting key in
+ ``programoutput_prompt_template``
+ - Warn on unexpected return codes instead of raising
+ ``subprocess.CalledProcessError``
+ - Turn fatal errors during command into document error messages
+ instead of crashing the build
+
+
+ 0.4.1 (Mar 11, 2011)
+ ====================
+
+ - Some source code cleanups
+ - Fixed installation instructions in documentation
+
+
+ 0.4 (May 21, 2010)
+ ==================
+
+ - Initial release
+
+Keywords: sphinx cli command output program example
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
@@ -87,7 +207,12 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Documentation
Classifier: Topic :: Utilities
+Classifier: Framework :: Sphinx
+Classifier: Framework :: Sphinx :: Extension
+Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/README.rst new/sphinxcontrib-programoutput-0.14/README.rst
--- old/sphinxcontrib-programoutput-0.10/README.rst 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/README.rst 2019-04-08 20:00:33.000000000 +0200
@@ -9,8 +9,7 @@
:target: https://coveralls.io/github/NextThought/sphinxcontrib-programoutput
-
-http://sphinxcontrib-programoutput.readthedocs.org
+https://sphinxcontrib-programoutput.readthedocs.org
A Sphinx_ extension to literally insert the output of arbitrary commands into
documents, helping you to keep your command examples up to date.
@@ -23,7 +22,7 @@
pip install sphinxcontrib-programoutput
-The extension requires Sphinx 1.3.5 and Python 2.7 or Python 3 (Python
+The extension requires Sphinx 1.7.0 and Python 2.7 or Python 3 (Python
3.5+ is tested) at least.
Usage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/doc/index.rst new/sphinxcontrib-programoutput-0.14/doc/index.rst
--- old/sphinxcontrib-programoutput-0.10/doc/index.rst 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/doc/index.rst 2019-04-08 20:00:33.000000000 +0200
@@ -194,7 +194,7 @@
If the ``prompt`` option is given, the ``command`` itself is included in the
document, so that the output mimics input in a shell prompt.
- :confval:`programoutput_prompt_template` controlls the appearance of this.
+ :confval:`programoutput_prompt_template` controls the appearance of this.
The value of the ``extraargs`` option is appended at the end of ``command``
(separated by a whitespace) before executing the command, but not included
in the output of the ``prompt`` option. Use this to pass extra arguments
@@ -269,7 +269,7 @@
- Squash commits on the topic branch before opening a pull request.
- Respect :pep:`8` (use `pep8`_ to check your coding style compliance)
- Add unit tests.
-- Open a `pull request <https://help.github.com/articles/using-pull-requests>`_
+- Open a `new pull request <https://help.github.com/articles/using-pull-requests>`_
that relates to but one subject with a clear title and description in
grammatically correct, complete sentences.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/setup.py new/sphinxcontrib-programoutput-0.14/setup.py
--- old/sphinxcontrib-programoutput-0.10/setup.py 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/setup.py 2019-04-08 20:00:33.000000000 +0200
@@ -29,7 +29,11 @@
def read_desc():
with open('README.rst') as stream:
- return stream.read()
+ readme = stream.read()
+ with open('CHANGES.rst') as stream:
+ changes = stream.read()
+
+ return readme + '\n\n' + changes
def read_version_number():
VERSION_PATTERN = re.compile(r"__version__ = '([^']+)'")
@@ -48,7 +52,6 @@
name='sphinxcontrib-programoutput',
version=read_version_number(),
url='https://sphinxcontrib-programoutput.readthedocs.org/',
- download_url='https://pypi.python.org/pypi/sphinxcontrib-programoutput',
license='BSD',
author='Sebastian Wiesner',
author_email='lunaryorn(a)gmail.com',
@@ -56,6 +59,7 @@
maintainer_email='jason(a)nextthought.com',
description='Sphinx extension to include program output',
long_description=read_desc(),
+ keywords="sphinx cli command output program example",
zip_safe=False,
classifiers=[
'Development Status :: 5 - Production/Stable',
@@ -68,10 +72,13 @@
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
'Topic :: Documentation',
'Topic :: Utilities',
+ 'Framework :: Sphinx',
+ 'Framework :: Sphinx :: Extension',
],
platforms='any',
packages=find_packages('src'),
@@ -79,11 +86,12 @@
namespace_packages=['sphinxcontrib'],
include_package_data=True,
install_requires=[
- 'Sphinx>=1.3.5',
+ 'Sphinx>=1.7.0',
],
tests_require=tests_require,
extras_require={
'test': tests_require,
},
+ python_requires=">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*",
test_suite='sphinxcontrib.programoutput.tests',
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/__init__.py new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/__init__.py
--- old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/__init__.py 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/__init__.py 2019-04-08 20:00:33.000000000 +0200
@@ -45,9 +45,11 @@
from docutils.parsers import rst
from docutils.parsers.rst.directives import flag, unchanged, nonnegative_int
+from sphinx.util import logging as sphinx_logging
-__version__ = '0.10'
+__version__ = '0.14'
+logger = sphinx_logging.getLogger('contrib.programoutput')
class program_output(nodes.Element):
pass
@@ -193,6 +195,20 @@
return result
+def _prompt_template_as_unicode(app):
+ tmpl = app.config.programoutput_prompt_template
+ if isinstance(tmpl, bytes):
+ for enc in 'utf-8', sys.getfilesystemencoding():
+ try:
+ tmpl = tmpl.decode(enc)
+ except UnicodeError: # pragma: no cover
+ pass
+ else:
+ app.config.programoutput_prompt_template = tmpl
+ break
+ return tmpl
+
+
def run_programs(app, doctree):
"""
Execute all programs represented by ``program_output`` nodes in
@@ -217,29 +233,50 @@
except EnvironmentError as error:
error_message = 'Command {0} failed: {1}'.format(command, error)
error_node = doctree.reporter.error(error_message, base_node=node)
+ # Sphinx 1.8.0b1 started dropping all system_message nodes with a
+ # level less than 5 by default (or 2 if `keep_warnings` is set to true).
+ # This appears to be undocumented. Reporting failures is an important
+ # part of what this extension does, so we raise the default level.
+ error_node['level'] = 6
node.replace_self(error_node)
else:
if returncode != node['returncode']:
- app.warn('Unexpected return code {0} from command {1}'.format(
- returncode, command))
+ logger.warning(
+ 'Unexpected return code %s from command %s',
+ returncode, command
+ )
# replace lines with ..., if ellipsis is specified
+
+ # Recall that `output` is guaranteed to be a unicode string on
+ # all versions of Python.
if 'strip_lines' in node:
- lines = output.splitlines()
start, stop = node['strip_lines']
- lines[start:stop] = ['...']
- output = '\n'.join(lines)
+ lines = output.splitlines()
+ lines[start:stop] = [u'...']
+ output = u'\n'.join(lines)
if node['show_prompt']:
- tmpl = app.config.programoutput_prompt_template
- output = tmpl.format(command=node['command'], output=output,
- returncode=returncode)
+ # The command in the node is also guaranteed to be
+ # unicode, but the prompt template might not be. This
+ # could be a native string on Python 2, or one with an
+ # explicit b prefix on 2 or 3 (for some reason).
+ # Attempt to decode it using UTF-8, preferentially, or
+ # fallback to sys.getfilesystemencoding(). If all that fails, fall back
+ # to the default encoding (which may have often worked before).
+ prompt_template = _prompt_template_as_unicode(app)
+ output = prompt_template.format(
+ command=node['command'],
+ output=output,
+ returncode=returncode
+ )
new_node = node_class(output, output)
new_node['language'] = 'text'
node.replace_self(new_node)
+
def init_cache(app):
"""
Initialize the cache for program output at
@@ -259,3 +296,7 @@
app.add_directive('command-output', ProgramOutputDirective)
app.connect('builder-inited', init_cache)
app.connect('doctree-read', run_programs)
+ metadata = {
+ 'parallel_read_safe': True
+ }
+ return metadata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/tests/__init__.py new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/tests/__init__.py
--- old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/tests/__init__.py 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/tests/__init__.py 2019-04-08 20:00:33.000000000 +0200
@@ -3,12 +3,16 @@
import shutil
import tempfile
+from docutils import nodes
from docutils.parsers.rst import directives
+from docutils.parsers.rst import roles
from sphinx.application import Sphinx
from functools import update_wrapper
# pylint:disable=no-self-use,protected-access,too-few-public-methods
+# useless-object-inheritance is version specific
+# pylint:disable=bad-option-value,useless-object-inheritance
class Lazy(object):
@@ -49,20 +53,60 @@
html_theme = 'default'
"""
+def _find_duplicate_default_nodes():
+ from sphinx import addnodes
+ class App(object):
+
+ def __init__(self):
+ self.nodes = set()
+
+ def add_node(self, node):
+ self.nodes.add(node.__name__)
+
+
+ app = App()
+ try:
+ addnodes.setup(app)
+ except AttributeError:
+ # Sphinx 1 doesn't have this
+ pass
+
+ return app.nodes
class AppMixin(object):
+ #: The contents of the main 'doc.rst' document.
+ #:
+ #: This will be written as a bytestring to the document, allowing for
+ #: the document to be in an arbitrary encoding.
+ #:
+ #: If this object is not a bytestring, it will first be encoded using
+ #: the encoding named in `self.document_encoding`.
document_content = '=============\ndummy content\n=============\n'
+ document_encoding = 'utf-8'
+
+ duplicate_nodes_to_remove = _find_duplicate_default_nodes()
+
def setUp(self):
# Avoid "WARNING: while setting up extension
# sphinxcontrib.programoutput: directive u'program-output' is
# already registered, it will be overridden".
+ # This may only be needed for Sphinx 1.
self.directives = directives._directives.copy()
+ # Likewise for 'eq'
+ self.roles = roles._roles.copy()
+
+ # Avoid "node class 'toctree' is already registered, its visitors will be overridden"
+ # By default this class has *no* `visit_` methods
+ for node in self.duplicate_nodes_to_remove:
+ if hasattr(nodes.GenericNodeVisitor, 'visit_' + node):
+ delattr(nodes.GenericNodeVisitor, 'visit_' + node)
def tearDown(self):
directives._directives = self.directives
+ roles._roles = self.roles
@Lazy
def tmpdir(self):
@@ -90,11 +134,16 @@
content_directory = os.path.join(srcdir, 'content')
os.mkdir(content_directory)
content_document = os.path.join(content_directory, 'doc.rst')
- with open(content_document, 'w') as f:
- f.write("=====\n")
- f.write("Title\n")
- f.write("=====\n\n")
- f.write(self.document_content)
+ contents = self.document_content
+ if not isinstance(contents, bytes):
+ contents = contents.encode(self.document_encoding)
+
+ with open(content_document, 'wb') as f:
+ f.write(b"=====\n")
+ f.write(b"Title\n")
+ f.write(b"=====\n\n")
+
+ f.write(contents)
return srcdir
@@ -135,7 +184,7 @@
@Lazy
def ignore_warnings(self):
- return False
+ return True
@Lazy
def doctree(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/tests/test_directive.py new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/tests/test_directive.py
--- old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/tests/test_directive.py 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/tests/test_directive.py 2019-04-08 20:00:33.000000000 +0200
@@ -244,11 +244,12 @@
@with_content("""\
- .. program-output:: python -c 'import sys; sys.exit(1)'""")
+ .. program-output:: python -c 'import sys; sys.exit(1)'""",
+ ignore_warnings=False)
def test_unexpected_return_code(self):
with self.assertRaises(SphinxWarning) as excinfo:
self.app.build()
- self.assertIn('WARNING: Unexpected return code 1 from command',
+ self.assertIn('Unexpected return code 1 from command',
excinfo.exception.args[0])
self.assertIn("python -c 'import sys; sys.exit(1)'",
excinfo.exception.args[0])
@@ -256,17 +257,16 @@
@with_content("""\
.. program-output:: python -c 'import sys; sys.exit(1)'
- :shell:""")
+ :shell:""",
+ ignore_warnings=False)
def test_shell_with_unexpected_return_code(self):
with self.assertRaises(SphinxWarning) as excinfo:
self.app.build()
- self.assertIn('WARNING: Unexpected return code 1 from command',
+ self.assertIn('Unexpected return code 1 from command',
excinfo.exception.args[0])
self.assertIn("python -c 'import sys; sys.exit(1)'",
excinfo.exception.args[0])
-
-
@with_content("""\
.. program-output:: python -c 'import sys; print("foo"); sys.exit(1)'
:returncode: 1""")
@@ -275,7 +275,6 @@
self.assert_cache(self.app, 'python -c \'import sys; print("foo"); sys.exit(1)\'',
'foo', returncode=1)
-
@with_content("""\
.. command-output:: python -c 'import sys; sys.exit(1)'
:returncode: 1""",
@@ -290,12 +289,11 @@
self.assert_cache(app, "python -c 'import sys; sys.exit(1)'", '',
returncode=1)
-
@with_content(u".. program-output:: 'spam with eggs'", ignore_warnings=True)
def test_non_existing_executable(self):
# check that a proper error message appears in the document
message = self.doctree.next_node(system_message)
- assert message
+ self.assertTrue(message)
srcfile = os.path.join(self.srcdir, 'content', 'doc.rst')
self.assertEqual(message['source'], srcfile)
self.assertEqual(message['line'], 5)
@@ -305,7 +303,6 @@
self.assertIn('spam with eggs', message_text)
self.assertIn("Errno", message_text)
-
@with_content("""\
.. program-output:: echo spam
:cwd: ./subdir""", ignore_warnings=True)
@@ -314,7 +311,7 @@
doctree = self.doctree
srcdir = self.srcdir
message = doctree.next_node(system_message)
- assert message
+ self.assertTrue(message)
srcfile = os.path.join(srcdir, 'content', 'doc.rst')
self.assertEqual(message['source'], srcfile)
self.assertEqual(message['line'], 5)
@@ -324,6 +321,45 @@
self.assertIn('subdir', message_text)
self.assertIn("No such file or directory", message_text)
+ @with_content(u'.. command-output:: echo "U+2264 ≤ LESS-THAN OR EQUAL TO"')
+ def test_default_prompt_with_unicode_output(self):
+ self.assert_output(
+ self.doctree, u"""\
+$ echo "U+2264 ≤ LESS-THAN OR EQUAL TO"
+U+2264 ≤ LESS-THAN OR EQUAL TO""")
+ self.assert_cache(
+ self.app,
+ u'echo "U+2264 ≤ LESS-THAN OR EQUAL TO"',
+ u'U+2264 ≤ LESS-THAN OR EQUAL TO')
+
+ @with_content(u'.. command-output:: echo "U+2264 ≤ LESS-THAN OR EQUAL TO"',
+ programoutput_prompt_template=b'> {command}\n{output}')
+ def test_bytes_prompt_with_unicode_output(self):
+ self.assert_output(
+ self.doctree, u"""\
+> echo "U+2264 ≤ LESS-THAN OR EQUAL TO"
+U+2264 ≤ LESS-THAN OR EQUAL TO""")
+ self.assert_cache(
+ self.app,
+ u'echo "U+2264 ≤ LESS-THAN OR EQUAL TO"',
+ u'U+2264 ≤ LESS-THAN OR EQUAL TO')
+
+ @with_content("""\
+ .. program-output:: echo -e "U+2264 ≤ LESS-THAN OR EQUAL TO\\n≤ line2\\n≤ line3"
+ :ellipsis: 2
+ """)
+ def test_unicode_output_with_ellipsis(self):
+ self.assert_output(
+ self.doctree, u"""\
+U+2264 \u2264 LESS-THAN OR EQUAL TO\n\u2264 line2\n..."""
+ )
+ self.assert_cache(
+ self.app,
+ u'echo -e "U+2264 ≤ LESS-THAN OR EQUAL TO\\n≤ line2\\n≤ line3"',
+ u'U+2264 \u2264 LESS-THAN OR EQUAL TO\n\u2264 line2\n\u2264 line3'
+ )
+
+
def test_suite():
return unittest.defaultTestLoader.loadTestsFromName(__name__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/tests/test_setup.py new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/tests/test_setup.py
--- old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib/programoutput/tests/test_setup.py 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib/programoutput/tests/test_setup.py 2019-04-08 20:00:33.000000000 +0200
@@ -36,8 +36,8 @@
def test_init_cache(self):
app = self.app
- assert isinstance(app.env.programoutput_cache, ProgramOutputCache)
- assert not app.env.programoutput_cache
+ self.assertIsInstance(app.env.programoutput_cache, ProgramOutputCache)
+ self.assertFalse(app.env.programoutput_cache)
def test_suite():
return unittest.defaultTestLoader.loadTestsFromName(__name__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib_programoutput.egg-info/PKG-INFO new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib_programoutput.egg-info/PKG-INFO
--- old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib_programoutput.egg-info/PKG-INFO 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib_programoutput.egg-info/PKG-INFO 2019-04-08 20:00:34.000000000 +0200
@@ -1,12 +1,13 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: sphinxcontrib-programoutput
-Version: 0.10
+Version: 0.14
Summary: Sphinx extension to include program output
Home-page: https://sphinxcontrib-programoutput.readthedocs.org/
-Author: Jason Madden
-Author-email: jason(a)nextthought.com
+Author: Sebastian Wiesner
+Author-email: lunaryorn(a)gmail.com
+Maintainer: Jason Madden
+Maintainer-email: jason(a)nextthought.com
License: BSD
-Download-URL: https://pypi.python.org/pypi/sphinxcontrib-programoutput
Description: =============================
sphinxcontrib-programoutput
=============================
@@ -18,8 +19,7 @@
:target: https://coveralls.io/github/NextThought/sphinxcontrib-programoutput
-
- http://sphinxcontrib-programoutput.readthedocs.org
+ https://sphinxcontrib-programoutput.readthedocs.org
A Sphinx_ extension to literally insert the output of arbitrary commands into
documents, helping you to keep your command examples up to date.
@@ -32,7 +32,7 @@
pip install sphinxcontrib-programoutput
- The extension requires Sphinx 1.3.5 and Python 2.7 or Python 3 (Python
+ The extension requires Sphinx 1.7.0 and Python 2.7 or Python 3 (Python
3.5+ is tested) at least.
Usage
@@ -76,6 +76,126 @@
.. _PyPI: http://pypi.python.org/pypi/sphinxcontrib-programoutput
.. _documentation: http://sphinxcontrib-programoutput.readthedocs.org
+
+ =========
+ Changes
+ =========
+
+ 0.14 (2019-04-08)
+ =================
+
+ - Add ``python_requires`` metadata to better allow tools like ``pip``
+ to install a correct version.
+
+ - Add support for Sphinx 2.0 on Python 3.
+
+ - Avoid unicode errors when the program command or output produced
+ non-ASCII output and the configured prompt was a byte string. This
+ was most likely under Python 2, where the default configured prompt
+ is a byte string. Reported by, and patch inspired by, `issue 33
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/33>`_
+ by latricewilgus.
+
+ 0.13 (2018-12-22)
+ =================
+
+ - Drop support for Sphinx < 1.7.
+
+ - Fix tests on Sphinx >= 1.8.0.
+
+ - Restore error message into the document by default from failed
+ program runs on Sphinx >= 1.8.0b1.
+
+ - Fix deprecation warnings on Sphinx >= 1.8. Reported in `issue 29
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/29>`_
+ by miili.
+
+
+ 0.11 (2017-05-18)
+ =================
+
+ - Explicitly set ``parallel_read_safe`` to true in the extension
+ metadata. See `issue 25
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/25>`_.
+ With thanks to Adam J. Stewart and Stephen McDowell.
+
+ 0.10 (2017-03-17)
+ =================
+
+ - Decode output from the program tolerantly, using the 'replace'
+ handler. Based on a `pull request
+ <https://github.com/habnabit/sphinxcontrib-programoutput/commit/592078e0386c…>`_
+ by Stefan C. Müller.
+
+
+ 0.9 (2017-03-15)
+ ================
+
+ - Forked and revived the project in `Gitub
+ <https://github.com/NextThought/sphinxcontrib-programoutput>`_.
+
+ - Run the tests on Travis CI. Formatting and style is enforced by pylint.
+
+ - The oldest supported and tested Sphinx version is now 1.3.5. See
+ `issue 17
+ <https://github.com/NextThought/sphinxcontrib-programoutput/issues/17>`_.
+
+
+ - Remove support for Python 2.6, Python 3.2 and 3.3.
+
+ - 100% test coverage.
+
+ - Remove support for ``programoutput_use_ansi``. The
+ ``sphinxcontrib.ansi`` extension is no longer available on PyPI.
+
+ 0.8 (Oct 12, 2012)
+ ==================
+
+ - Migrated to GitHub
+
+
+ 0.7 (Apr 17, 2012)
+ ==================
+
+ - Added ``cwd`` option to ``..program-output``
+ - Working directory of executed programs defaults to documentation root now
+
+
+ 0.6 (Jan 07, 2012)
+ ==================
+
+ - Python 3 support
+ - Require Sphinx 1.1 now
+
+
+ 0.5 (Sep 19, 2011)
+ ==================
+
+ - ``programoutput_prompt_template`` is interpreted as format string now!
+ - Require Python 2.6 now
+ - Added ``returncode`` option to ``program-output`` (thanks to
+ Jan-Marek Glogowski)
+ - Support ``returncode`` formatting key in
+ ``programoutput_prompt_template``
+ - Warn on unexpected return codes instead of raising
+ ``subprocess.CalledProcessError``
+ - Turn fatal errors during command into document error messages
+ instead of crashing the build
+
+
+ 0.4.1 (Mar 11, 2011)
+ ====================
+
+ - Some source code cleanups
+ - Fixed installation instructions in documentation
+
+
+ 0.4 (May 21, 2010)
+ ==================
+
+ - Initial release
+
+Keywords: sphinx cli command output program example
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
@@ -87,7 +207,12 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Documentation
Classifier: Topic :: Utilities
+Classifier: Framework :: Sphinx
+Classifier: Framework :: Sphinx :: Extension
+Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib_programoutput.egg-info/requires.txt new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib_programoutput.egg-info/requires.txt
--- old/sphinxcontrib-programoutput-0.10/src/sphinxcontrib_programoutput.egg-info/requires.txt 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/src/sphinxcontrib_programoutput.egg-info/requires.txt 2019-04-08 20:00:34.000000000 +0200
@@ -1,3 +1,3 @@
-Sphinx>=1.3.5
+Sphinx>=1.7.0
[test]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-programoutput-0.10/tox.ini new/sphinxcontrib-programoutput-0.14/tox.ini
--- old/sphinxcontrib-programoutput-0.10/tox.ini 2017-03-17 16:39:01.000000000 +0100
+++ new/sphinxcontrib-programoutput-0.14/tox.ini 2019-04-08 20:00:33.000000000 +0200
@@ -1,5 +1,5 @@
[tox]
-envlist=py27,py27old,py36,pypy,doc
+envlist=py27,py27old,py36,py37,pypy,doc
[testenv]
deps =
@@ -9,7 +9,7 @@
[testenv:py27old]
deps =
- Sphinx == 1.3.5
+ Sphinx == 1.7.0
[testenv:doc]
deps =
1
0
Hello community,
here is the log from the commit of package python-sphinxcontrib-pecanwsme for openSUSE:Factory checked in at 2019-04-30 12:59:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sphinxcontrib-pecanwsme (Old)
and /work/SRC/openSUSE:Factory/.python-sphinxcontrib-pecanwsme.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sphinxcontrib-pecanwsme"
Tue Apr 30 12:59:39 2019 rev:9 rq:697382 version:0.10.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sphinxcontrib-pecanwsme/python-sphinxcontrib-pecanwsme.changes 2018-09-13 12:10:42.490348498 +0200
+++ /work/SRC/openSUSE:Factory/.python-sphinxcontrib-pecanwsme.new.5536/python-sphinxcontrib-pecanwsme.changes 2019-04-30 12:59:45.074181103 +0200
@@ -1,0 +2,7 @@
+Tue Apr 23 13:48:35 UTC 2019 - Marketa Calabkova <mcalabkova(a)suse.com>
+
+- update to 0.10.0
+ * Add support for Sphinx 2.0
+ * Logs are moved to debug level to reduce noisiness of output
+
+-------------------------------------------------------------------
Old:
----
sphinxcontrib-pecanwsme-0.9.0.tar.gz
New:
----
sphinxcontrib-pecanwsme-0.10.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sphinxcontrib-pecanwsme.spec ++++++
--- /var/tmp/diff_new_pack.qX5J53/_old 2019-04-30 12:59:47.290180608 +0200
+++ /var/tmp/diff_new_pack.qX5J53/_new 2019-04-30 12:59:47.290180608 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-sphinxcontrib-pecanwsme
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-sphinxcontrib-pecanwsme
-Version: 0.9.0
+Version: 0.10.0
Release: 0
Summary: Extension to Sphinx for documenting APIs built with Pecan and WSME
License: Apache-2.0
@@ -32,6 +32,7 @@
BuildRequires: %{python_module six}
BuildRequires: %{python_module sphinxcontrib-httpdomain}
BuildRequires: python-rpm-macros
+Requires: python-six
Requires: python-sphinxcontrib-httpdomain
BuildArch: noarch
++++++ sphinxcontrib-pecanwsme-0.9.0.tar.gz -> sphinxcontrib-pecanwsme-0.10.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-pecanwsme-0.9.0/ChangeLog new/sphinxcontrib-pecanwsme-0.10.0/ChangeLog
--- old/sphinxcontrib-pecanwsme-0.9.0/ChangeLog 2018-06-26 15:58:57.000000000 +0200
+++ new/sphinxcontrib-pecanwsme-0.10.0/ChangeLog 2019-04-02 11:42:15.000000000 +0200
@@ -1,6 +1,13 @@
CHANGES
=======
+0.10.0
+------
+
+* update announce.rst for a 0.10.0 release
+* Lower logging level
+* Add Sphinx 2.0 compatibility
+
0.9.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-pecanwsme-0.9.0/PKG-INFO new/sphinxcontrib-pecanwsme-0.10.0/PKG-INFO
--- old/sphinxcontrib-pecanwsme-0.9.0/PKG-INFO 2018-06-26 15:58:57.000000000 +0200
+++ new/sphinxcontrib-pecanwsme-0.10.0/PKG-INFO 2019-04-02 11:42:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: sphinxcontrib-pecanwsme
-Version: 0.9.0
+Version: 0.10.0
Summary: A Sphinx extension for documenting APIs built with Pecan and WSME
Home-page: https://github.com/sphinx-contrib/pecanwsme
Author: Doug Hellmann
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-pecanwsme-0.9.0/announce.rst new/sphinxcontrib-pecanwsme-0.10.0/announce.rst
--- old/sphinxcontrib-pecanwsme-0.9.0/announce.rst 2018-06-26 15:58:15.000000000 +0200
+++ new/sphinxcontrib-pecanwsme-0.10.0/announce.rst 2019-04-02 11:41:03.000000000 +0200
@@ -1,6 +1,6 @@
-===============================
- sphinxcontrib-pecanwsme 0.9.0
-===============================
+================================
+ sphinxcontrib-pecanwsme 0.10.0
+================================
.. tags:: sphinxcontrib-pecanwsme, pecan, WSME, sphinx, release
@@ -14,4 +14,5 @@
What's New?
===========
-* Add support for Python 3
+* Add support for Sphinx 2.0
+* Logs are moved to debug level to reduce noisiness of output
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-pecanwsme-0.9.0/sphinxcontrib/pecanwsme/rest.py new/sphinxcontrib-pecanwsme-0.10.0/sphinxcontrib/pecanwsme/rest.py
--- old/sphinxcontrib-pecanwsme-0.9.0/sphinxcontrib/pecanwsme/rest.py 2018-06-26 15:57:33.000000000 +0200
+++ new/sphinxcontrib-pecanwsme-0.10.0/sphinxcontrib/pecanwsme/rest.py 2019-04-02 11:41:03.000000000 +0200
@@ -17,8 +17,8 @@
# under the License.
"""Sphinx extension for automatically generating API documentation
from Pecan controllers exposed through WSME.
-
"""
+
import inspect
from functools import reduce
@@ -26,11 +26,14 @@
from docutils import nodes
from docutils.parsers import rst
from docutils.statemachine import ViewList
+from sphinx.util import logging
from sphinx.util.docstrings import prepare_docstring
from sphinx.util.nodes import nested_parse_with_titles
import wsme.types
+LOG = logging.getLogger(__name__)
+
def import_object(import_name):
"""Import the named object and return it.
@@ -120,9 +123,6 @@
return directive
def make_rst_for_controller(self, path_prefix, controller):
- env = self.state.document.settings.env
- app = env.app
-
controller_path = path_prefix.rstrip('/')
# Some of the controllers are instantiated dynamically, so
@@ -149,10 +149,10 @@
('get_all', 'get'),
('get', 'get'),
]:
- app.info('Checking %s for %s method' % (controller, method_name))
+ LOG.debug('Checking %s for %s method', controller, method_name)
method = getattr(controller, method_name, None)
if method and method.exposed:
- app.info('Found method: %s' % method_name)
+ LOG.debug('Found method: %s', method_name)
lines.extend(
self.make_rst_for_method(
controller_path,
@@ -163,7 +163,7 @@
# Handle the special case for get_one(). The path should
# include the name of the argument used to find the object.
if hasattr(controller, 'get_one') and controller.get_one.exposed:
- app.info('Found method: get_one')
+ LOG.debug('Found method: get_one')
funcdef = controller.get_one._wsme_definition
first_arg_name = funcdef.arguments[0].name
path = controller_path + '/(' + first_arg_name + ')'
@@ -180,10 +180,10 @@
('delete', 'delete'),
('patch', 'patch'),
]:
- app.info('Checking %s for %s method' % (controller, method_name))
+ LOG.debug('Checking %s for %s method', controller, method_name)
method = getattr(controller, method_name, None)
if method and method.exposed:
- app.info('Found method: %s' % method_name)
+ LOG.debug('Found method: %s', method_name)
lines.extend(
self.make_rst_for_method(
controller_path,
@@ -193,7 +193,7 @@
# Look for exposed custom methods
for name in sorted(controller._custom_actions.keys()):
- app.info('Adding custom method: %s' % name)
+ LOG.debug('Adding custom method: %s', name)
path = controller_path + '/' + name
actions = controller._custom_actions[name]
for action in actions:
@@ -204,7 +204,7 @@
method = getattr(controller, method_name)
else:
method = getattr(controller, name)
- app.info('Custom method %s uses action %s' % (method, action))
+ LOG.debug('Custom method %s uses action %s', method, action)
lines.extend(
self.make_rst_for_method(
path,
@@ -215,17 +215,14 @@
return lines
def run(self):
- env = self.state.document.settings.env
- app = env.app
controller_id = self.arguments[0]
- app.info('found root-controller %s' % controller_id)
+ LOG.debug('found root-controller %s', controller_id)
result = ViewList()
controller = import_object(self.arguments[0])
for line in self.make_rst_for_controller(
self.options.get('webprefix', '/'), controller):
- app.info('ADDING: %r' % line)
result.append(line, '<' + __name__ + '>')
node = nodes.section()
@@ -237,5 +234,4 @@
def setup(app):
- app.info('Initializing %s' % __name__)
app.add_directive('rest-controller', RESTControllerDirective)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-pecanwsme-0.9.0/sphinxcontrib_pecanwsme.egg-info/PKG-INFO new/sphinxcontrib-pecanwsme-0.10.0/sphinxcontrib_pecanwsme.egg-info/PKG-INFO
--- old/sphinxcontrib-pecanwsme-0.9.0/sphinxcontrib_pecanwsme.egg-info/PKG-INFO 2018-06-26 15:58:56.000000000 +0200
+++ new/sphinxcontrib-pecanwsme-0.10.0/sphinxcontrib_pecanwsme.egg-info/PKG-INFO 2019-04-02 11:42:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: sphinxcontrib-pecanwsme
-Version: 0.9.0
+Version: 0.10.0
Summary: A Sphinx extension for documenting APIs built with Pecan and WSME
Home-page: https://github.com/sphinx-contrib/pecanwsme
Author: Doug Hellmann
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinxcontrib-pecanwsme-0.9.0/sphinxcontrib_pecanwsme.egg-info/pbr.json new/sphinxcontrib-pecanwsme-0.10.0/sphinxcontrib_pecanwsme.egg-info/pbr.json
--- old/sphinxcontrib-pecanwsme-0.9.0/sphinxcontrib_pecanwsme.egg-info/pbr.json 2018-06-26 15:58:56.000000000 +0200
+++ new/sphinxcontrib-pecanwsme-0.10.0/sphinxcontrib_pecanwsme.egg-info/pbr.json 2019-04-02 11:42:15.000000000 +0200
@@ -1 +1 @@
-{"git_version": "2df74e3", "is_release": false}
\ No newline at end of file
+{"git_version": "719603a", "is_release": false}
\ No newline at end of file
1
0
Hello community,
here is the log from the commit of package python-sphinxcontrib-httpdomain for openSUSE:Factory checked in at 2019-04-30 12:59:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sphinxcontrib-httpdomain (Old)
and /work/SRC/openSUSE:Factory/.python-sphinxcontrib-httpdomain.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sphinxcontrib-httpdomain"
Tue Apr 30 12:59:29 2019 rev:14 rq:697381 version:1.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sphinxcontrib-httpdomain/python-sphinxcontrib-httpdomain.changes 2019-01-03 18:06:19.760156289 +0100
+++ /work/SRC/openSUSE:Factory/.python-sphinxcontrib-httpdomain.new.5536/python-sphinxcontrib-httpdomain.changes 2019-04-30 12:59:36.150181889 +0200
@@ -1,0 +2,15 @@
+Tue Apr 23 14:52:51 UTC 2019 - Marketa Calabkova <mcalabkova(a)suse.com>
+
+- update to version 1.7.0
+ * Implemented :autoquickref: option that use available
+ informations to build a quickref.
+ * Remove references to the sphinx.util.compat module which was
+ deprecated in Sphinx 1.6 and removed in 1.7.
+ * Made :mod:`sphinxcontrib.autohttp.tornado` compatible with
+ Tornado 4.5 and newer.
+ * Minimum compatible version of Sphinx became changed to 1.5.
+ * Use HTTPS for :rfc: generated links.
+- Dropped obsolete patch newer-sphinx.patch
+- Take upstream release tarball because of tests
+
+-------------------------------------------------------------------
Old:
----
newer-sphinx.patch
sphinxcontrib-httpdomain-1.5.0.tar.gz
New:
----
1.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sphinxcontrib-httpdomain.spec ++++++
--- /var/tmp/diff_new_pack.NfUfV1/_old 2019-04-30 12:59:37.550182781 +0200
+++ /var/tmp/diff_new_pack.NfUfV1/_new 2019-04-30 12:59:37.550182781 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-sphinxcontrib-httpdomain
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,26 +17,30 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_with test
+%bcond_without test
Name: python-sphinxcontrib-httpdomain
-Version: 1.5.0
+Version: 1.7.0
Release: 0
Summary: Sphinx domain for HTTP APIs
License: BSD-2-Clause
Group: Development/Languages/Python
URL: http://bitbucket.org/birkenfeld/sphinx-contrib
-Source: https://files.pythonhosted.org/packages/source/s/sphinxcontrib-httpdomain/s…
-# PATCH-FIX-UPSTREAM newer-sphinx.patch -- https://bitbucket.org/birkenfeld/sphinx-contrib/pull-requests/152/fix-182-b…
-Patch1: newer-sphinx.patch
+Source: https://github.com/sphinx-contrib/httpdomain/archive/%{version}.tar.gz
BuildRequires: %{python_module Sphinx}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-Sphinx
+Requires: python-Sphinx >= 1.5
Requires: python-six
+Requires: python-tornado >= 4.5
BuildArch: noarch
%if %{with test}
+BuildRequires: %{python_module Flask >= 0.11}
+BuildRequires: %{python_module Sphinx >= 1.5}
+BuildRequires: %{python_module bottle >= 0.11.0}
+BuildRequires: %{python_module pytest}
BuildRequires: %{python_module six}
+BuildRequires: %{python_module tornado >= 4.5}
%endif
%python_subpackages
@@ -49,8 +53,7 @@
http://packages.python.org/sphinxcontrib-httpdomain/
%prep
-%setup -q -n sphinxcontrib-httpdomain-%{version}
-%patch1 -p1
+%setup -q -n httpdomain-%{version}
%build
%python_build
@@ -59,6 +62,12 @@
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%if %{with test}
+%check
+PYTHONPATH=.
+%python_exec -m pytest test
+%endif
+
%files %{python_files}
%license LICENSE
%doc README.rst
++++++ sphinxcontrib-httpdomain-1.5.0.tar.gz -> 1.7.0.tar.gz ++++++
++++ 3710 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-weave for openSUSE:Factory checked in at 2019-04-30 12:59:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-weave (Old)
and /work/SRC/openSUSE:Factory/.python-weave.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-weave"
Tue Apr 30 12:59:16 2019 rev:6 rq:697380 version:0.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-weave/python-weave.changes 2019-02-24 17:18:54.676413028 +0100
+++ /work/SRC/openSUSE:Factory/.python-weave.new.5536/python-weave.changes 2019-04-30 12:59:25.422173373 +0200
@@ -1,0 +2,8 @@
+Tue Apr 23 15:47:08 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 0.17.0
+ * maintenance release that fixes compatibility with NumPy 1.16.x
+- deleted patches
+ - numpy-16.patch (upstreamed)
+
+-------------------------------------------------------------------
Old:
----
numpy-16.patch
weave-0.16.0.tar.gz
New:
----
weave-0.17.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-weave.spec ++++++
--- /var/tmp/diff_new_pack.6noVLs/_old 2019-04-30 12:59:28.818176068 +0200
+++ /var/tmp/diff_new_pack.6noVLs/_new 2019-04-30 12:59:28.822176072 +0200
@@ -22,14 +22,13 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-weave
-Version: 0.16.0
+Version: 0.17.0
Release: 0
Summary: Weave: a C++ compiler for Python
License: BSD-3-Clause
Group: Development/Libraries/Python
URL: http://www.github.com/scipy/weave
Source0: https://files.pythonhosted.org/packages/source/w/weave/weave-%{version}.tar…
-Patch0: numpy-16.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module nose}
BuildRequires: %{python_module numpy-devel}
@@ -62,7 +61,6 @@
%prep
%setup -q -n weave-%{version}
-%patch0 -p1
sed -i -e '1d' weave/setup.py
%build
++++++ weave-0.16.0.tar.gz -> weave-0.17.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weave-0.16.0/PKG-INFO new/weave-0.17.0/PKG-INFO
--- old/weave-0.16.0/PKG-INFO 2017-04-19 13:44:19.000000000 +0200
+++ new/weave-0.17.0/PKG-INFO 2019-02-27 07:40:21.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: weave
-Version: 0.16.0
+Version: 0.17.0
Summary: Weave: a C++ compiler for Python.
Home-page: http://www.github.com/scipy/weave
Author: Weave developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weave-0.16.0/doc/release/0.17.0-notes.rst new/weave-0.17.0/doc/release/0.17.0-notes.rst
--- old/weave-0.16.0/doc/release/0.17.0-notes.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/weave-0.17.0/doc/release/0.17.0-notes.rst 2019-02-27 07:33:01.000000000 +0100
@@ -0,0 +1,17 @@
+==========================
+Weave 0.17.0 Release Notes
+==========================
+
+Weave provides tools for including C/C++ code within Python code. Inlining
+C/C++ code within Python generally results in speedups of 1.5x to 30x over
+algorithms written in pure Python.
+
+Weave is the stand-alone version of the now-removed SciPy submodule ``scipy.weave``.
+It is Python 2.x only, and is provided for users that need new versions of
+SciPy but have existing code that still depends on ``scipy.weave``. For new code,
+users are recommended to use Cython.
+
+Weave 0.17.0 is a maintenance release that fixes compatibility with NumPy
+1.16.x.
+
+This release requires Python 2.6 or 2.7.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weave-0.16.0/doc/source/release.0.17.0.rst new/weave-0.17.0/doc/source/release.0.17.0.rst
--- old/weave-0.16.0/doc/source/release.0.17.0.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/weave-0.17.0/doc/source/release.0.17.0.rst 2019-02-27 07:31:05.000000000 +0100
@@ -0,0 +1 @@
+.. include:: ../release/0.17.0-notes.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weave-0.16.0/doc/source/release.rst new/weave-0.17.0/doc/source/release.rst
--- old/weave-0.16.0/doc/source/release.rst 2017-04-19 13:41:50.000000000 +0200
+++ new/weave-0.17.0/doc/source/release.rst 2019-02-27 07:29:56.000000000 +0100
@@ -7,3 +7,4 @@
release.0.15.0
release.0.16.0
+ release.0.17.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weave-0.16.0/setup.py new/weave-0.17.0/setup.py
--- old/weave-0.16.0/setup.py 2017-04-19 13:36:16.000000000 +0200
+++ new/weave-0.17.0/setup.py 2019-02-27 07:29:34.000000000 +0100
@@ -42,7 +42,7 @@
MAJOR = 0
-MINOR = 16
+MINOR = 17
MICRO = 0
ISRELEASED = True
VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO)
@@ -194,7 +194,7 @@
FULLVERSION, GIT_REVISION = get_version_info()
metadata['version'] = FULLVERSION
else:
- if len(sys.argv) >= 2 and sys.argv[1] == 'bdist_wheel':
+ if len(sys.argv) >= 2 and sys.argv[1] in ['bdist_wheel', 'test']:
# bdist_wheel needs setuptools
import setuptools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weave-0.16.0/weave/inline_tools.py new/weave-0.17.0/weave/inline_tools.py
--- old/weave-0.16.0/weave/inline_tools.py 2015-08-16 08:19:19.000000000 +0200
+++ new/weave-0.17.0/weave/inline_tools.py 2019-02-27 07:27:23.000000000 +0100
@@ -7,8 +7,12 @@
from . import ext_tools
from . import catalog
from . import common_info
-
-from numpy.core.multiarray import _get_ndarray_c_version
+try:
+ # numpy 1.16:
+ from numpy.core._multiarray_umath import _get_ndarray_c_version
+except ImportError:
+ # numpy < 1.16:
+ from numpy.core.multiarray import _get_ndarray_c_version
ndarray_api_version = '/* NDARRAY API VERSION %x */' % (_get_ndarray_c_version(),)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weave-0.16.0/weave/version.py new/weave-0.17.0/weave/version.py
--- old/weave-0.16.0/weave/version.py 2017-04-19 13:44:19.000000000 +0200
+++ new/weave-0.17.0/weave/version.py 2019-02-27 07:40:20.000000000 +0100
@@ -1,9 +1,9 @@
# THIS FILE IS GENERATED FROM WEAVE SETUP.PY
-short_version = '0.16.0'
-version = '0.16.0'
-full_version = '0.16.0'
-git_revision = '922f5919aebb5818f70688fa3bc68508377aa72f'
+short_version = '0.17.0'
+version = '0.17.0'
+full_version = '0.17.0'
+git_revision = '55d48df39b9685164a71fd29050ad45d307b0a97'
release = True
if not release:
1
0