--
-- mail from:GoogleGroups "web2py-developers" mailing list
make speech: web2py-d...@googlegroups.com
unsubscribe: web2py-develop...@googlegroups.com
details : http://groups.google.com/group/web2py-developers
the project: http://code.google.com/p/web2py/
official : http://www.web2py.com/
---
You received this message because you are subscribed to the Google Groups "web2py-developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to web2py-develop...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I know, I'm being stressfull...........Am I the only fan of dropping 3-level menus ? mobile-wise the experience is terrible.
notes (I visited only default/index.html and the login page, how can everybody skip over these ??? ):
- footer is sticky, yep, but not fixed size. the less tall the page, the taller the footer.
- navbar is in a container, all the rest in a container-fluid
- response.toolbar doesn't behave as usual
- response.flash is way too wide
fixed
- web2py.js should probably add a btn-default to buttons
- form.add_button() behaves wrongly (see the "remember me" on the login page)
- auth.settings.formstyle doesn't inherit response.formstyle. Either we set it explicitely in db.py or we change auth logic to honor response.formstyle
- menu links point to web2py.css, that is still there but unused.
- web2py-bootstrap3.js comes from a side-project. apart from documentation pointing to the side-project, can be dropped safely once 3rd level menus are dropped. Even if we kept those, needs revisitations
- docs are pointing to side-project also for web2py-bootstrap3.css. Several styles are unused and should be dropped. Some are plain wrong (form max-width: 600px ... .hidden replacing bs3 behaviour .... ?)
auth versioning is still enabled....... I'd disable it. Did anybody use janrain lately ? there's a bug opened on it: should we really keep it on the default scaffolding ?
PS: is the time to drop the examples app ? ATM I'm reaaaally eager to drop it: too much things to be revised and frankly the only link pointing to it is embedded in an (old)copy of web2py.com and reachable by a not-so-visible link….
PS2: the scaffolding app carries the hypermedia module : apart from it being largely untested (and tearing the app down with large tables by default), it requires python 2.7. Nice POC, but maybe scaffolding isn't the right place to advertise.
That was by design. I like it that way. I am ok to change it but how?
it does it- web2py.js should probably add a btn-default to buttons
not sure how. can you help?- form.add_button() behaves wrongly (see the "remember me" on the login page)
It does here: https://github.com/web2py/web2py/blob/master/gluon/tools.py#L1361 is it not working?- auth.settings.formstyle doesn't inherit response.formstyle. Either we set it explicitely in db.py or we change auth logic to honor response.formstyle
I agree they should not be used but why remove them since we went thought the table of implementing them?
- docs are pointing to side-project also for web2py-bootstrap3.css. Several styles are unused and should be dropped. Some are plain wrong (form max-width: 600px ... .hidden replacing bs3 behaviour .... ?)is there a way to remove them automatically?
auth versioning is still enabled....... I'd disable it. Did anybody use janrain lately ? there's a bug opened on it: should we really keep it on the default scaffolding ?
PS: is the time to drop the examples app ? ATM I'm reaaaally eager to drop it: too much things to be revised and frankly the only link pointing to it is embedded in an (old)copy of web2py.com and reachable by a not-so-visible link….I agree but not in this version. That requires changing the documentation as well as my deployment process.
PS2: the scaffolding app carries the hypermedia module : apart from it being largely untested (and tearing the app down with large tables by default), it requires python 2.7. Nice POC, but maybe scaffolding isn't the right place to advertise.What do others think about this? I do not have strong opinions but it is something I want to encourage people to try and use.
On Tuesday, March 17, 2015 at 11:00:20 PM UTC+1, Massimo Di Pierro wrote:That was by design. I like it that way. I am ok to change it but how?
repetita juvant....Do you have ANY application that has a taddle bit of animations that change the container height ? If yes, then you can't like it. In order to replicate the behaviour .... put in a controller
def test():
return dict()
navigate to it, press any response.toolbar button. Ugly.
This is how, BTW, http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.cssit does it- web2py.js should probably add a btn-default to buttons
nope. https://github.com/web2py/web2py/blob/master/applications/welcome/static/js/web2py.js#L79
not sure how. can you help?- form.add_button() behaves wrongly (see the "remember me" on the login page)
IMHO a revision of extra_fields for SQLFORM is needed, in addition to add_button(). the same thing happens with the "check to delete" buttons. the label (including separator) is after the checkbox, and doesn't seem to be styled as dictated by the formstyle.
It does here: https://github.com/web2py/web2py/blob/master/gluon/tools.py#L1361 is it not working?- auth.settings.formstyle doesn't inherit response.formstyle. Either we set it explicitely in db.py or we change auth logic to honor response.formstyle
whoops. It's working. Need to raise another point then: there is no management of error-related classes in core-shipped bs3-related formstyles.I agree they should not be used but why remove them since we went thought the table of implementing them?
try it on a narrow screen, you'll see that a vertical scrollbar is added. Try to navigate it on a touch-screen and you'll quickly realize it's impossible. I'm not very keen of "add if someone went through the trouble of implementing". We dropped far more "sweaty implementations": if they don't work, they don't. Moreover, it's not our sweat, it's copied off bootsnipp. In addition to that, there's a reason why it's a snippet and it's not included in bs3. Mobile navigation.
There are other subtle small bits on web2py-bootstrap3.js that are plain wrong (or, to better explain, they were useful in the original process but got left unused in the current state, which is is a copy-paste of portions of the original project).
- docs are pointing to side-project also for web2py-bootstrap3.css. Several styles are unused and should be dropped. Some are plain wrong (form max-width: 600px ... .hidden replacing bs3 behaviour .... ?)is there a way to remove them automatically?
There's a distinction to make....unused, added for no reason and overriding defaults.
unused could, theoretically. Code a page that includes all kinds of possible web2py-supplied pieces, then pass it through uncss or some chrome plugins. there are tons.
Added for no reason........well. There's no pre or post processor smarter than a brain.
overriding defaults is a bit of a conceptual nightmare.
<totally_personal_opinion coming_from="a DBA" not_so_skilled_in="web design">
If you embrace a css framework, you shouldn't override its rules.
To the previous statement, I append a part... "unless you are at least as badass as bootstrap developers", that in my case is obviously true.
I was discomforted from the previous set of overrides (still in web2py.css) that screwed my design in some occasions for no apparent reasons. If someone can comment/justify/show test cases I'd be more inclined to accept them, but as they stand, e.g. the max-width fixed limitation on EVERY form, no matter of media-queries, well, I really don't see the reason behind.
</totally_personal_opinion>
auth versioning is still enabled....... I'd disable it. Did anybody use janrain lately ? there's a bug opened on it: should we really keep it on the default scaffolding ?
PS: is the time to drop the examples app ? ATM I'm reaaaally eager to drop it: too much things to be revised and frankly the only link pointing to it is embedded in an (old)copy of web2py.com and reachable by a not-so-visible link….I agree but not in this version. That requires changing the documentation as well as my deployment process.
PS2: the scaffolding app carries the hypermedia module : apart from it being largely untested (and tearing the app down with large tables by default), it requires python 2.7. Nice POC, but maybe scaffolding isn't the right place to advertise.What do others think about this? I do not have strong opinions but it is something I want to encourage people to try and use.well. from "we shouldn't drop 2.5" to "we force newbies to 2.7" in less than a week, you're a welcome addition to 2.7 supporters :-P .
I just drop it as soon as I see it because it'll try to serialize 10k rows without even blinking.
The problem with the sticky footer that I get is that when the page has low height, the footer appears in the middle of the page. Also I like tall footers with sitemaps. I do not know how to make those with a sticky footer. Perhaps I do not understand your proposal. How would you like it
This is how, BTW, http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.cssit does it- web2py.js should probably add a btn-default to buttons
nope. https://github.com/web2py/web2py/blob/master/applications/welcome/static/js/web2py.js#L79You are right. It is done here:because it is a bs feature.
not sure how. can you help?- form.add_button() behaves wrongly (see the "remember me" on the login page)
IMHO a revision of extra_fields for SQLFORM is needed, in addition to add_button(). the same thing happens with the "check to delete" buttons. the label (including separator) is after the checkbox, and doesn't seem to be styled as dictated by the formstyle.Can you fix it? Else I can do it later or tomorrow.It does here: https://github.com/web2py/web2py/blob/master/gluon/tools.py#L1361 is it not working?- auth.settings.formstyle doesn't inherit response.formstyle. Either we set it explicitely in db.py or we change auth logic to honor response.formstyle
whoops. It's working. Need to raise another point then: there is no management of error-related classes in core-shipped bs3-related formstyles.I agree they should not be used but why remove them since we went thought the table of implementing them?
try it on a narrow screen, you'll see that a vertical scrollbar is added. Try to navigate it on a touch-screen and you'll quickly realize it's impossible. I'm not very keen of "add if someone went through the trouble of implementing". We dropped far more "sweaty implementations": if they don't work, they don't. Moreover, it's not our sweat, it's copied off bootsnipp. In addition to that, there's a reason why it's a snippet and it's not included in bs3. Mobile navigation.There are other subtle small bits on web2py-bootstrap3.js that are plain wrong (or, to better explain, they were useful in the original process but got left unused in the current state, which is is a copy-paste of portions of the original project).I do not disagree but since you know what they are (the wrong bits) and I do not, can you be more explicit or remove them?
- docs are pointing to side-project also for web2py-bootstrap3.css. Several styles are unused and should be dropped. Some are plain wrong (form max-width: 600px ... .hidden replacing bs3 behaviour .... ?)is there a way to remove them automatically?
There's a distinction to make....unused, added for no reason and overriding defaults.
unused could, theoretically. Code a page that includes all kinds of possible web2py-supplied pieces, then pass it through uncss or some chrome plugins. there are tons.
Added for no reason........well. There's no pre or post processor smarter than a brain.
overriding defaults is a bit of a conceptual nightmare.
<totally_personal_opinion coming_from="a DBA" not_so_skilled_in="web design">
If you embrace a css framework, you shouldn't override its rules.
To the previous statement, I append a part... "unless you are at least as badass as bootstrap developers", that in my case is obviously true.
I was discomforted from the previous set of overrides (still in web2py.css) that screwed my design in some occasions for no apparent reasons. If someone can comment/justify/show test cases I'd be more inclined to accept them, but as they stand, e.g. the max-width fixed limitation on EVERY form, no matter of media-queries, well, I really don't see the reason behind.
</totally_personal_opinion>I agree. But we web2py.css is not imported anymore in welcome app. we only have web2py-bootstrap3.css. If there are rules that you think should not be overidden, I am happy to remove them. Which ones?
auth versioning is still enabled....... I'd disable it. Did anybody use janrain lately ? there's a bug opened on it: should we really keep it on the default scaffolding ?
PS: is the time to drop the examples app ? ATM I'm reaaaally eager to drop it: too much things to be revised and frankly the only link pointing to it is embedded in an (old)copy of web2py.com and reachable by a not-so-visible link….I agree but not in this version. That requires changing the documentation as well as my deployment process.web2py.com is the examples app from the stable branch. they get in sync when I push stable.
At the end, it seems I'm forced to edit the bs3 even if I don't like it…..
The problem with the sticky footer that I get is that when the page has low height, the footer appears in the middle of the page. Also I like tall footers with sitemaps. I do not know how to make those with a sticky footer. Perhaps I do not understand your proposal. How would you like itas the example it has been taken for http://getbootstrap.com/examples/sticky-footer-navbar/ .This is how, BTW, http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.cssit does it- web2py.js should probably add a btn-default to buttons
nope. https://github.com/web2py/web2py/blob/master/applications/welcome/static/js/web2py.js#L79You are right. It is done here:because it is a bs feature.that's definitely not the place to have it. that script is not applied to components (LOAD(..., ajax=True), for instance)
not sure how. can you help?- form.add_button() behaves wrongly (see the "remember me" on the login page)
IMHO a revision of extra_fields for SQLFORM is needed, in addition to add_button(). the same thing happens with the "check to delete" buttons. the label (including separator) is after the checkbox, and doesn't seem to be styled as dictated by the formstyle.Can you fix it? Else I can do it later or tomorrow.It does here: https://github.com/web2py/web2py/blob/master/gluon/tools.py#L1361 is it not working?- auth.settings.formstyle doesn't inherit response.formstyle. Either we set it explicitely in db.py or we change auth logic to honor response.formstyle
whoops. It's working. Need to raise another point then: there is no management of error-related classes in core-shipped bs3-related formstyles.I agree they should not be used but why remove them since we went thought the table of implementing them?
try it on a narrow screen, you'll see that a vertical scrollbar is added. Try to navigate it on a touch-screen and you'll quickly realize it's impossible. I'm not very keen of "add if someone went through the trouble of implementing". We dropped far more "sweaty implementations": if they don't work, they don't. Moreover, it's not our sweat, it's copied off bootsnipp. In addition to that, there's a reason why it's a snippet and it's not included in bs3. Mobile navigation.There are other subtle small bits on web2py-bootstrap3.js that are plain wrong (or, to better explain, they were useful in the original process but got left unused in the current state, which is is a copy-paste of portions of the original project).I do not disagree but since you know what they are (the wrong bits) and I do not, can you be more explicit or remove them?
once done, I don't want to hear anyone saying "why did you remove them"……………
- docs are pointing to side-project also for web2py-bootstrap3.css. Several styles are unused and should be dropped. Some are plain wrong (form max-width: 600px ... .hidden replacing bs3 behaviour .... ?)is there a way to remove them automatically?
There's a distinction to make....unused, added for no reason and overriding defaults.
unused could, theoretically. Code a page that includes all kinds of possible web2py-supplied pieces, then pass it through uncss or some chrome plugins. there are tons.
Added for no reason........well. There's no pre or post processor smarter than a brain.
overriding defaults is a bit of a conceptual nightmare.
<totally_personal_opinion coming_from="a DBA" not_so_skilled_in="web design">
If you embrace a css framework, you shouldn't override its rules.
To the previous statement, I append a part... "unless you are at least as badass as bootstrap developers", that in my case is obviously true.
I was discomforted from the previous set of overrides (still in web2py.css) that screwed my design in some occasions for no apparent reasons. If someone can comment/justify/show test cases I'd be more inclined to accept them, but as they stand, e.g. the max-width fixed limitation on EVERY form, no matter of media-queries, well, I really don't see the reason behind.
</totally_personal_opinion>I agree. But we web2py.css is not imported anymore in welcome app. we only have web2py-bootstrap3.css. If there are rules that you think should not be overidden, I am happy to remove them. Which ones?
same as before: once done, I don't want to hear anyone saying "why did you remove them"……………
auth versioning is still enabled....... I'd disable it. Did anybody use janrain lately ? there's a bug opened on it: should we really keep it on the default scaffolding ?
PS: is the time to drop the examples app ? ATM I'm reaaaally eager to drop it: too much things to be revised and frankly the only link pointing to it is embedded in an (old)copy of web2py.com and reachable by a not-so-visible link….I agree but not in this version. That requires changing the documentation as well as my deployment process.web2py.com is the examples app from the stable branch. they get in sync when I push stable.uhm. I compared visually them and there's something wrong.
ok, will work on it right about now. It'll be covering ALL things I brought up that are not fixed, even if anyone didn't care to discuss it here (and there).
As for bs3 related js code, which IMHO should be only related to:
- btn btn-default to all buttons (just because it doesn't hurt, even if it has e.g. btn-warning on it)
- list:* widgets
and possibly a different calendar widget for date(time) fields, there's another “discussion"
is web2py.js a "worldwide" thing that needs to be updated within every application at the same time a new web2py version comes up, or is specific to the scaffolding app someone choose ?
As it stands right now, albeit "less specific", there are a few things that are tailored only for bs2 template.
There has been a time when we recommended to overwrite any web2py.js with the latest web2py.js to make an app work, because we changed some implementations that were done in core code previously by mistake.
This isn't the case (we didn't change any logic), but, if we want to keep web2py.js just about "the js logic needed by web2py as a framework, regardless the scaffolding used", then the method can only be to ship a web2py-bootstrap3.js that overrides the relevant bits on web2py.js .
If instead web2py.js is always specific to the scaffolding that is shipped, than the accomodations can be done in web2py.js directly.
I'll work with the former assumption, in order to demonstrate what a scaffolding based on another css framework could hook up the existing web2py.js code.
and possibly a different calendar widget for date(time) fields, there's another “discussion"I would not change the calender widget. I think there is value in shipping with a css neutral calendar.
First iteration is here https://github.com/web2py/web2py/pull/854
Needed to change gluon/tools.py too, to make it honor response.form_label_separator, that incidentally was risen as an issue exactly for bs3.
- cruft removal
- web2py-bootstrap3.js behaving like it should, overriding web2py.js where needed
- styles sanitization
- AppConfig examples
For sure there are still many (probably too many) "ie hacks" (ie7, ie8, ie9) I'm not sure are needed.
Will check in the next days thanks to modern.ie images.
Given that IE7 is not supported by bs3 I'd be inclined to drop all IE7 related ones without even blinking.
Didn't test anything past usual forms, and grids.
Todo for everybody... test, test, test... on the top of my head, some things that is often left in a corner untested are:
- wiki
- crud (?!)
- all kinds of widgets
- form.add_button()
- IS_IN_SET with checkboxes and radios (multiple too)
-
PS: If we are going towards response.ui, now is definitely the time to chime in.
and possibly a different calendar widget for date(time) fields, there's another “discussion"I would not change the calender widget. I think there is value in shipping with a css neutral calendar.
If only the whole app wasn't based on a specific css-framework, I'd agree with you. Given the actual solution doesn't fit the bill for lots of usecases (i.e. mobile, touch) (and, frankly, I find myself most of the times to drop it), and it's unsupported, and it's discontinued, and can't be tuned, and can't be customized... why don't treat calendar.css + calendar.js as web2py.css ? Still there, but unused.
Didn't test anything past usual forms, and grids.
Todo for everybody... test, test, test... on the top of my head, some things that is often left in a corner untested are:
- wiki
- crud (?!)I think we have been clear they are legacy. I stopped supporting those eons ago.
The problem is response.formstyle has been there for 1 year. Even if we move to reponse.ui I do not need response.formstyle going away. Anyway, @Anthony, any comments?
looks great. I made some new minor changes to the css. I also I added something you may not like:input[type=checkbox], input[type=radio] {margin: 4px 4px 0 0;}.btn {margin-right: 4px;}The former is required to add space between checkboxes and their right labels. According to the BS3 docs the input is supposed to be in the label but our widgets do not do it and I think it is crazy for the input to be inside the label.The second is so that multiple buttons can can near each other and do not touch each other. I am opposed to buttons touching each other. It is gross.Massimo
On Thursday, March 19, 2015 at 12:34:35 AM UTC+1, Massimo Di Pierro wrote:looks great. I made some new minor changes to the css. I also I added something you may not like:input[type=checkbox], input[type=radio] {margin: 4px 4px 0 0;}.btn {margin-right: 4px;}The former is required to add space between checkboxes and their right labels. According to the BS3 docs the input is supposed to be in the label but our widgets do not do it and I think it is crazy for the input to be inside the label.The second is so that multiple buttons can can near each other and do not touch each other. I am opposed to buttons touching each other. It is gross.Massimothe input inside the label allows you to click on the label and have the input checked. It's User Interaction 101.
As for buttons not touching, if that rule won't let me use button groups, then it's an issue.
You received this message because you are subscribed to a topic in the Google Groups "web2py-developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/web2py-developers/hv2tn5b562Y/unsubscribe.
To unsubscribe from this group and all its topics, send an email to web2py-develop...@googlegroups.com.
--
-- mail from:GoogleGroups "web2py-developers" mailing list
make speech: web2py-d...@googlegroups.com
unsubscribe: web2py-develop...@googlegroups.com
details : http://groups.google.com/group/web2py-developers
the project: http://code.google.com/p/web2py/
official : http://www.web2py.com/
---
You received this message because you are subscribed to a topic in the Google Groups "web2py-developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/web2py-developers/hv2tn5b562Y/unsubscribe.
To unsubscribe from this group and all its topics, send an email to web2py-develop...@googlegroups.com.
You received this message because you are subscribed to the Google Groups "web2py-developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to web2py-develop...@googlegroups.com.
I should add I am not sure cachable=True on cache.disk ever worked. Do we know it did?
./web2py.py -M -S welcome
>>> db.auth_user.insert(first_name='homer')
1L
>>> db.commit()
>>> db(db.auth_user.id>0).select(cacheable=True, cache=(cache.disk, 60))
<Rows (1)>
>>> exit()
import pickle
db.define_table('t_a', Field('f_a'))
db.commit()
db.t_a.insert(f_a='homer')
db.commit()
rtn = db(db.t_a.id>0).select(cacheable=True)
pickle.dumps(rtn)
import pickle
def test():
rtn = db(db.auth_user.id>0).select(cacheable=True)
a = pickle.dumps(rtn)
return locals()
I'm calling the day, though. Too many emotions this evening : I'll leave this up to you. Sorry I couldn't see it through.
--
You received this message because you are subscribed to a topic in the Google Groups "web2py-developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/web2py-developers/hv2tn5b562Y/unsubscribe.
To unsubscribe from this group and all its topics, send an email to web2py-develop...@googlegroups.com.
even if I don't use GAE (nor plan to spend any time on it) ... did anyone report back on the - seemingly - broken examples/app.example.yaml that is shipped with web2py ?
I recall spending a lot of time on it with @lpg but the final response was never reported back nor an update has been made to that file since a year ago.
last time I tried (lpg provided an account), summary was (as reported in one in the linked threads)
this was plain wrong
/(.+?)/static/_\d.\d.\d\/(.+)
as in regex terms wouldn't had allowed you to use (using x.y.z as the example) to have a x.y.zz.
/(.+?)/static/_[\d]+\.[\d]+\.[\d]+/(.+)
is more correct from a regex POV, because sintactically it allows you to have AT LEAST one digit for every x, y, or z, ("+" is "one or more"). Unfortunately, GAE seems to NOT respect regex syntax and maps correcly x.y.z but not xx.yy.zz nor xx.y.z nor x.y.zz
/(.+?)/static/_(\d+\.\d+\.\d+)/(.+)
this is exactly as before, but the _1.2.3 part is now part of a grouping. This means that the backreferences must be shifted (static_files: applications/\1/static/\3 instead of static_files: applications/\1/static/\2). But in now the "rewrite" works, while the previous didn't
in regex terms, this means that _1.2.3 NEEDS to be in a group to allow both _1.2.3 and _123.123.123 to work fine. Strangely enough the regex syntax (that is documented to work fine) doesn't work if not inside a grouping.
If you are confirming that it's all working fine (that means someone reported the bug to GAE developers and got fixed), I'm happy.
On Saturday, March 21, 2015 at 12:13:26 AM UTC+1, Massimo Di Pierro wrote::-) Fixed.On Mar 20, 2015, at 5:30 PM, Niphlod <nip...@gmail.com> wrote:
apparently dev did not behave as when deployed, and, TBF, wasn't coherent with the docs, albeit they're not specifying which kind of regex syntax is allowed.
BTW: @leonel, the author of the new cache.disk (that doesn't seem really to be the issue at hand ) ... inspecting the code, I found out that at this point https://github.com/web2py/web2py/blob/master/gluon/cache.py#L325 "value" holds already the tuple containing time.time() and the actual value.... later (line 328), time.time() is added another time....
When fetching https://github.com/web2py/web2py/blob/master/gluon/cache.py#L341 , you correctly return value, but timestamp is not used.......... why the need to store time.time() two times ?
from gluon.storage import Storage
from gluon.cache import CacheOnDisk, CacheInRam
import time
import threading
s = Storage({'application': 'admin',
'folder': 'applications/admin'})
cache = CacheOnDisk(s)
#cache = CacheInRam(s)
def add_to_it():
for a in range(1000):
cache.increment('a')
def start_two_threads():
threads = []
for i in range(5):
t = threading.Thread(target=add_to_it)
threads.append(t)
t.start()
for t in threads:
t.join()
return 'finished'
if __name__ == '__main__':
rtn = start_two_threads()
print 'should be 5000', cache('a', lambda : 1, time_expire=10000)
A) cache statistics are initialized (if you set a SINGLE cached value, it creates 2 files) but it's actually NEVER updated. There's no way to see what are the stats about hits and misses.
CacheOnDisk NEVER returns 5000
A) cache statistics are initialized (if you set a SINGLE cached value, it creates 2 files) but it's actually NEVER updated. There's no way to see what are the stats about hits and misses.They're updated in the __call__ method like in the other cache implementations. I'm all for just pruning it.
CacheOnDisk NEVER returns 5000Well that's to be expected, cache disk is not thread safe as it doesn't have any locks in it so if you do operations that aren't atomic that's what will happen.
The same thing can happen in cache ram if instead of using the provided increment which has a lock on the entire cache you make one yourself where you get the value from the cache and then you set it to +1 yourself.
Basically if you're going to use cached values for computations and you're writing the value of the result in the same key you're using for the computations, stuff will break unless you do your own concurrency management.
please don't get it in a wrong way, but WHEN anyone agreed in having a cache.disk that ISN'T thread-safe ?! Everything in web2py is, and for a lot of good reasons.