-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Updates for asv suite #10928
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updates for asv suite #10928
Conversation
|
||
def remove(self, f): | ||
try: | ||
os.remove(self.f) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would put all of these in a base class, maybe Base
and inherit all tests from it (rather than object
). You might want several levels of this for various ones (e.g. IOBase
) or whatever. Just to remove some boilerplate.
You could e.g. in IOBase
have teardown
always do a .remove
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My expectation is that any of the benchmark modules will have a handful of classes post-cleanup. asv
doesn't require different classes per benchmark, so we can put time_foo()
and time_bar()
on the same class. Also, these changes are all auto-generated.
sure that is fine ok so merge when ready then |
Fix up vbench_to_asv.py handling of functions in setup
@jorisvandenbossche Yes, that is correct. The only manual changes were in Just pushed some small changes (StringIO change and added a new line in contributing). I think it's good to merge. |
Updates for asv suite
@qwhelan Thanks a lot for this! |
Of course. I also have a bunch of asv run data I should throw up on a github.io page
|
@jorisvandenbossche My run data should be accessible here: http://qwhelan.github.io/pandas_asv/ . An explicit list of regressions can be seen here: http://qwhelan.github.io/pandas_asv/#/regressions |
@@ -41,7 +41,10 @@ | |||
"sqlalchemy": [], | |||
"scipy": [], | |||
"numexpr": [], | |||
"pytables": [], | |||
"tables": [], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did you change pytables
to tables
? It doesn't work for me know with conda
. It ask if I meant pytables
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RafalSkolasinski Looks like Anaconda changed the package name - it's on PyPI as tables
: https://pypi.python.org/pypi/tables . I didn't want to force people to use conda
or virtualenv
, but I don't see an easy way to support both due to this name change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@qwhelan I see... That's weird that package is named tables
in pypi. even original webpage reads http://www.pytables.org/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but the 'import name' is tables I think.
In any case, we are probably not going to be able to specify a fully correct asv.conf.json file (eg also for windows an extra entry has to be added). So I would propose to choose one case (I would say: conda on linux) and make it work for that, and then clearly explain in the docs or readme what has to be changed to use it in the other cases.
has broken |
Now we did the conversion (and it is the idea we shouldn't have to do this again, as we start changing the asv benchmarks direclty), we can change this ( |
@jorisvandenbossche As you requested in #10849, here's the current state of affairs. The changes are:
setup
string get defined as classmethods and called appropriately. This fixes most failing tests.NotImplementedError
insidesetup()
is equivalent toSkipTest
, so I've tried to do that in a couple necessary cases (such as things usingtest_parallel
)test_parallel
, this required a bit of hackery to support not-existing. I implemented a no-op decorator by that name so that the actual definition of test cases wouldn't fail. We simply raiseNotImplementedError
rather than test without it, however.from pandas_vb_common import *
->from .pandas_vb_common import *
xrange
withrange
and addfrom pandas.compat import range
inpandas_vb_common
string.uppercase
withstring.ascii_uppercase
asv
instructions incontributing.rst
, largely lifted from the vbench description. The current examples are minimalist, but most comparable to what vbench outputs.cc @jreback @TomAugspurger