python-ipfix icon indicating copy to clipboard operation
python-ipfix copied to clipboard

Python 2.7 backport

Open britram opened this issue 11 years ago • 10 comments

coordinate with / investigate joelparker fork to backport to 2.7

britram avatar Jun 28 '13 09:06 britram

I started some work on this (working with @janies), but the lack of test coverage and my unfamiliarity with ipfix makes me worry I'll break something.

Name             Stmts   Miss  Cover   Missing
----------------------------------------------
ipfix/__init__       9      0   100%
ipfix/ie           112     15    87%   100, 115, 163, 166, 169, 172, 184, 187, 233, 245, 269, 287-288, 291, 321
ipfix/ieutils       36     28    22%   29-52, 56-63, 67-70
ipfix/message      218     53    76%   194, 255, 266-269, 288, 305-334, 352, 359, 363, 408, 411, 420-422, 500, 518, 530-533, 556, 589, 613, 619, 652-655, 678, 684-689, 715-717, 721-722
ipfix/reader        25     18    28%   42-44, 54-60, 71-77, 87
ipfix/template     188     32    83%   35-36, 89, 102, 114, 196-197, 213, 258, 282-286, 302, 307-312, 315-324, 337-341, 379
ipfix/types        126     23    82%   202, 205, 225-235, 271-274, 277-280, 349, 363-364, 371-372, 378-381
ipfix/v9pdu        138    107    22%   52-70, 73, 77-78, 81-90, 118-154, 165, 177-178, 181-185, 198-207, 215-217, 232-265, 275, 280, 283-298, 301-317
ipfix/writer        36     25    31%   40-43, 46-50, 63-65, 75, 87-88, 101-103, 107-109, 122-126, 138
----------------------------------------------
TOTAL              888    301    66%

Do you have any scripts or data you use for testing other than the doctests?

rouge8 avatar Oct 25 '13 19:10 rouge8

The only testing at this point is the doctest stuff, and a few scripts which use this (mainly for reading) in qof/pytools. Better coverage would be nice (should open a separate issue for it); lack of it is one of the reasons the release number is 0.9.x.

On the other hand, since nobody's using this on 2.7 anyway, I wouldn't worry about breaking anything in a 2.7 branch. :)

The main issues with porting back will be modules that aren't there (ipaddress being the one I know of off the top of my head) and handling iterator constructs that don't exist in 2.7 (biggest example is yield from, though you can do the same thing more awkwardly without it).

For exercising reading better than the test coverage provides, ensuring ipfix2csv provides identical results for a reasonably complex input (i.e. YAF output) on both branches is a pretty good start.

Andy Freeland wrote:

I started some work on this (working with @janies https://github.com/janies), but the lack of test coverage and my unfamiliarity with ipfix makes me worry I'll break something.

Name Stmts Miss Cover Missing

ipfix/init 9 0 100% ipfix/ie 112 15 87% 100, 115, 163, 166, 169, 172, 184, 187, 233, 245, 269, 287-288, 291, 321 ipfix/ieutils 36 28 22% 29-52, 56-63, 67-70 ipfix/message 218 53 76% 194, 255, 266-269, 288, 305-334, 352, 359, 363, 408, 411, 420-422, 500, 518, 530-533, 556, 589, 613, 619, 652-655, 678, 684-689, 715-717, 721-722 ipfix/reader 25 18 28% 42-44, 54-60, 71-77, 87 ipfix/template 188 32 83% 35-36, 89, 102, 114, 196-197, 213, 258, 282-286, 302, 307-312, 315-324, 337-341, 379 ipfix/types 126 23 82% 202, 205, 225-235, 271-274, 277-280, 349, 363-364, 371-372, 378-381 ipfix/v9pdu 138 107 22% 52-70, 73, 77-78, 81-90, 118-154, 165, 177-178, 181-185, 198-207, 215-217, 232-265, 275, 280, 283-298, 301-317

ipfix/writer 36 25 31% 40-43, 46-50, 63-65, 75, 87-88, 101-103, 107-109, 122-126, 138

TOTAL 888 301 66% |

Do you have any scripts or data you use for testing other than the doctests?

— Reply to this email directly or view it on GitHub https://github.com/britram/python-ipfix/issues/2#issuecomment-27117327.

britram avatar Oct 26 '13 17:10 britram

The main issues with porting back will be modules that aren't there (ipaddress being the one I know of off the top of my head) and handling iterator constructs that don't exist in 2.7 (biggest example is yield from, though you can do the same thing more awkwardly without it).

Yeah, I found backports or alternatives for most of the 3.3+ features, but yield from will become more awkward.

rouge8 avatar Oct 26 '13 17:10 rouge8

Is this backport still likely to happen, or is it abandoned? The fork appears about a year (and a hundred-plus commits) out of date.

brettdh avatar Sep 26 '14 12:09 brettdh

So the intention is still to do this, but it'll clearly have to start over with a new branch. Unfortunately the 2.7 backport is pretty far down my prio list at the moment, so I wouldn't expect to be able to devote any effort before 2015.

On Fri, Sep 26, 2014 at 2:40 PM, Brett Higgins [email protected] wrote:

Is this backport still likely to happen, or is it abandoned? The fork appears about a year (and a hundred-plus commits) out of date.

— Reply to this email directly or view it on GitHub https://github.com/britram/python-ipfix/issues/2#issuecomment-56955933.

britram avatar Sep 26 '14 12:09 britram

Any wild/ballpark estimate on the amount of effort required? I might be interested in contributing, especially if the test coverage has improved in the past year.

brettdh avatar Oct 07 '14 18:10 brettdh

@brettdh thanks for #16, will look into merging for 0.9.8...

britram avatar Sep 07 '17 13:09 britram

in develop-merge-27, need to verify a couple of things with the tests, will revisit this roll a 0.9.8 next week.

thanks and apologies for the short delay in merging... :)

britram avatar Sep 07 '17 14:09 britram

Python 2.7.14 ipfix 0.9.7

Steps to reproduce:

pip install functools32
pip install py2-ipaddress
pip install pytz
pip install ipfix

- Attempt to import ipfix produces and import error:
[root@91888e677db3 tests]# python
Python 2.7.14 (default, Sep 28 2017, 16:40:48) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ipfix
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/ipfix/__init__.py", line 54, in <module>
    from . import types
  File "/usr/local/lib/python2.7/site-packages/ipfix/types.py", line 148, in <module>
    from datetime import datetime, timedelta, timezone
ImportError: cannot import name timezone

Note: Python 2.7 datetime library does not include a timezone module

[root@91888e677db3 tests]# python
Python 2.7.14 (default, Sep 28 2017, 16:40:48) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from dateime import timezone
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named dateime

jklahn avatar Dec 11 '17 18:12 jklahn

Hi, I'd like to know Is any update about this?

Thanks

JackSunshine avatar Jan 03 '19 12:01 JackSunshine