diff --git a/dbutils/steady_db.py b/dbutils/steady_db.py index 52e1b60..8b6f11f 100644 --- a/dbutils/steady_db.py +++ b/dbutils/steady_db.py @@ -651,6 +651,8 @@ def tough_method(*args, **kwargs): if execute: self._setsizes(cursor2) method2 = getattr(cursor2, name) + # if the following call hangs, + # you may have forgotten to call begin() result = method2(*args, **kwargs) if execute: self._clearsizes() diff --git a/docs/doc.css b/docs/doc.css index c815371..c647434 100644 --- a/docs/doc.css +++ b/docs/doc.css @@ -1,39 +1,13 @@ /* - Webware for Python (https://webwareforpython.github.io/w4py/) - - Common style sheet for Webware's documentation pages + Style sheet for DBUtils documentation pages. */ /* First import default style for pages created with Docutils: */ @import url(docutils.css); -/* Customization for Webware goes here: */ +/* Customization for DBUtils goes here: */ -body { - background-color: #FFFFFF; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 10pt; - padding: 12pt; -} -table { - empty-cells: show; - border-collapse: collapse; - margin: 0 auto; -} -table.doc { - border-spacing: 2px; - border-collapse: separate; - border-style: none; -} -td, th { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 10pt; -} -table.doc td, table.doc th { - padding: 4px; - border-style: none; -} p { margin-top: 6pt; margin-bottom: 6pt; @@ -43,11 +17,9 @@ li { margin-bottom: 6pt; } h1, h2 { - font-family: Verdana, Arial, Helvetica, sans-serif; color: #002352; } h3, h4 { - font-family: Verdana, Arial, Helvetica, sans-serif; color: #002352; } h1 { @@ -59,55 +31,13 @@ h2 { h3 { font-size: 14pt; } -h4 { - font-size: 12pt; -} -h5 { - font-size: 11pt; -} -h6 { - font-size: 10pt; -} -h1.titlebar { - padding: 4pt; - margin-bottom: 12pt; - text-align: center; - color: white; - background-color: #025; -} -h1.title, h1.header { +h1.title { padding: 4pt; margin-bottom: 12pt; text-align: center; border-bottom: 1pt solid #025; padding-bottom: 8pt; } -div.footer { - font-family: Tahoma, Arial, Helvetica, sans-serif; - font-size: 9pt; - text-align: center; - padding: 4pt; - margin-top: 16pt; - border-top: 1pt solid #025; -} -.left { - text-align: left; -} -.right { - text-align: right; -} -.center { - text-align: center; -} -.top { - vertical-align: top; -} -.nowrap { - white-space: nowrap; -} -.contents { - font-family: Tahoma, Arial, Helvetica, sans-serif; -} .contents ul { list-style: none; margin-bottom: 24pt; @@ -115,63 +45,31 @@ div.footer { margin-left: 2em; } .contents ul li { - font-size: 11pt; - margin-bottom: 3pt; + font-size: 14pt; + margin-bottom: 2pt; } .contents ul ul { list-style-type: none; - margin-top: 2pt; - margin-bottom: 2pt; + margin-top: 1pt; + margin-bottom: 1pt; padding-left: 0em; margin-left: 1.5em; } .contents ul ul li { - font-size: 10pt; + font-size: 13pt; margin-bottom: 1pt; } -.contents .topic-title { - font-size: 16pt; -} -span.name { - font-weight: bold; -} -span.filename { - font-family: Tahoma, Arial, Helvetica, sans-serif; - font-size: 9pt; -} -code, .literal, .literal-block, .pre, .py { - font-family: "Andale Mono", "Lucida Console", Monaco, "Courier New", Courier, monospace; - font-size: 10pt; - color: #052; -} -tt.literal, span.pre { - background-color: #FFFFFF; -} -pre.py, pre.literal-block { - margin: 0; - padding: 2pt 1pt 1pt 2pt; - background-color: #F0F0F8; -} -.typed { - font-weight: bold; -} -.error { - color: red; +.contents > p.topic-title { + font-size: 24pt; } .warning { color: brown; } - -/* Configuration documentation: */ - -dl.config { -} -dt.config { -} -dd.config { +.admonition-title { + background-color: #F5F5DC; + padding: 1pt 3pt; } -span.setting { - font-family: Tahoma, Arial, Helvetica, sans-serif; - font-size: 9pt; - font-weight: bold; +.admonition-title::before { + content: "⚠"; + margin-right: .5em; } diff --git a/docs/docutils.css b/docs/docutils.css index bebeb07..50d0088 100644 --- a/docs/docutils.css +++ b/docs/docutils.css @@ -1,2 +1,2 @@ -/* CSS 3.1 style sheet for the output of Docutils 0.17 HTML writer. */ -body{margin:0;background-color:#dbdbdb}main,footer,header{line-height:1.3;max-width:50rem;padding:1px 2%;margin:auto}main{counter-reset:table figure;background-color:white}footer,header{font-size:smaller;padding:.5em 2%;border:0}hr.docutils{width:80%;margin-top:1em;margin-bottom:1em;clear:both}p,ol,ul,dl,li,dd,div.line-block,div.topic,table{margin-top:.5em;margin-bottom:.5em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}h1,h2,h3,h4,h5,h6,dl>dd{margin-bottom:.5em}dl>dd,ol>li,dd>ul:only-child,dd>ol:only-child{padding-left:1em}dl.description>dt{font-weight:bold;clear:left;float:left;margin:0;padding:0;padding-right:.5em}dl.field-list.narrow>dd{margin-left:5em}dl.field-list.run-in>dd p{display:block}div.abstract p.topic-title{text-align:center}div.dedication{margin:2em 5em;text-align:center;font-style:italic}div.dedication p.topic-title{font-style:normal}pre.literal-block,pre.doctest-block,pre.math,pre.code{font-family:monospace}blockquote>table,div.topic>table{margin-top:0;margin-bottom:0}blockquote p.attribution,div.topic p.attribution{text-align:right;margin-left:20%}table tr{text-align:left}table.booktabs{border:0;border-top:2px solid;border-bottom:2px solid;border-collapse:collapse}table.booktabs *{border:0}table.booktabs th{border-bottom:thin solid}table.numbered>caption:before{counter-increment:table;content:"Table " counter(table) ": ";font-weight:bold}dl.footnote{padding-left:1ex;border-left:solid;border-left-width:thin}figure.align-left,img.align-left,video.align-left,object.align-left{clear:left;float:left;margin-right:1em}figure.align-right,img.align-right,video.align-right,object.align-right{clear:right;float:right;margin-left:1em}h1,h2,h3,h4,footer,header{clear:both}figure.numbered>figcaption>p:before{counter-increment:figure;content:"Figure " counter(figure) ": ";font-weight:bold}.caution p.admonition-title,.attention p.admonition-title,.danger p.admonition-title,.error p.admonition-title,.warning p.admonition-title,div.error{color:red}aside.sidebar{width:30%;max-width:26em;margin-left:1em;margin-right:-2%;background-color:#ffe}pre.code{padding:.7ex}pre.code,code{background-color:#eee}pre.code .comment,code .comment{color:#5c6576}pre.code .keyword,code .keyword{color:#3b0d06;font-weight:bold}pre.code .literal.string,code .literal.string{color:#0c5404}pre.code .name.builtin,code .name.builtin{color:#352b84}pre.code .deleted,code .deleted{background-color:#deb0a1}pre.code .inserted,code .inserted{background-color:#a3d289}a{text-decoration:none} \ No newline at end of file +/* CSS 3 style sheet for the output of Docutils 0.21 HTML writer. */ +div.dedication,nav.contents{padding:0;font-style:italic}h1.title,table tr{text-align:left}.footnote,pre.code,pre.doctest-block,pre.literal-block,pre.math{overflow:auto}body{font-family:Georgia,serif;background-color:#fafaf6;font-size:1.2em;line-height:1.4;margin:auto}main{counter-reset:figure table}footer,header,main{padding:.5em 5%;background-color:#fefef8;max-width:100rem}.citation,.footnote,.topic,div.line-block,dl,h1,h2,h3,h4,h5,h6,li,ol,p,table,ul{margin-top:.5em;margin-bottom:.5em}.topic,blockquote,figure{margin:.5em 2%;padding-left:1em}dl>dd{margin-bottom:.5em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}div.line-block div.line-block,dl.option-list,figure>img,pre.code,pre.doctest-block,pre.literal-block,pre.math{margin-left:calc(2% + 1em)}footer,header{font-size:smaller}h2,h3,h4,p.section-subtitle,p.sidebar-subtitle,p.sidebar-title,p.subtitle,p.topic-title{font-weight:400;font-style:italic;text-align:left}.sectnum{font-style:normal}h1.title{margin-top:2.4em;margin-bottom:2em;font-size:2.4em}h1+p.subtitle{margin-top:-2em;margin-bottom:2em;font-size:2em}section{margin-top:2em}.contents>p.topic-title,h2{font-size:2.2em}h2+p.section-subtitle{font-size:1.6em}h3{font-size:1.2em}h3+p.section-subtitle{font-size:1.1em}figure.marginal>figcaption,h4,p.section-subtitle{font-size:1em}div.dedication{margin-left:0;font-size:1.2em}div.dedication p.topic-title{display:none}.topic p.attribution,blockquote p.attribution{text-align:right}ul.auto-toc>li>p{padding-left:1em;text-indent:-1em}nav.contents ul{padding-left:1em}hr{border:0;border-top:1px solid #ccc;margin:1em 10%}ol,ul{padding-left:1.1em}dd{margin-left:1.5em}dd>dl:first-child,dd>ol:first-child,dd>ul:first-child{clear:left}dl.docinfo>dd,dl.field-list>dd,dl.option-list>dd{margin-left:4em}dl.field-list.narrow>dd{margin-left:3em}dl.field-list.run-in>dd p{display:block}dl.description>dt,dl.docinfo>dt,dl.field-list>dt{font-weight:400;font-style:italic}dl.description>dt{clear:left;float:left;margin:0;padding:0 .5em 0 0}dl.description>dd:after{display:block;content:"";clear:both}.citation-list,.footnote-list{display:contents}.citation{padding-left:1.5em}.citation .label{margin-left:-1.5em}figure{display:flex;flex-wrap:wrap;align-items:flex-start}figure.fullwidth>img,figure>img{margin:0 .5em .5em 0;padding:0}figcaption{font-size:.8em}.fullwidth>figcaption{font-size:inherit}figure.numbered>figcaption>p:before{counter-increment:figure;content:"Figure " counter(figure) ": "}table.booktabs{border-top:2px solid;border-bottom:2px solid}table.booktabs *{border:0}table.booktabs th{border-bottom:thin solid}table.numbered>caption:before{counter-increment:table;content:"Table " counter(table) ": "}.admonition,.system-message{border-style:solid;border-color:silver;border-width:thin;margin:1em 0;padding:.5em}.attention p.admonition-title,.caution p.admonition-title,.danger p.admonition-title,.warning p.admonition-title,div.error{color:maroon}code .comment,pre.code .comment{color:#5c6576}code .keyword,pre.code .keyword{color:#3b0d06;font-weight:700}code .literal.string,pre.code .literal.string{color:#0c5404}code .name.builtin,pre.code .name.builtin{color:#352b84}code .deleted,pre.code .deleted{background-color:#deb0a1}code .inserted,pre.code .inserted{background-color:#a3d289}.sans{font-family:"Gill Sans","Gill Sans MT",Calibri,"Lucida Sans","Noto Sans",sans-serif;letter-spacing:.02em}a{color:inherit}a:link,a:link:hover{text-decoration:underline}.backrefs a:link,.contents a:link,a.citation-reference:link,a.image-reference:link,a.toc-backref:link,a[href^="#system-message"],a[role=doc-backlink]:link,a[role=doc-noteref]:link{text-decoration:none}.contents>p.topic-title,.fullwidth,footer,h1,h2,h3,header,hr.docutils{clear:both}div.align-left,figure.align-left,img.align-left,svg.align-left,table.align-left,video.align-left{margin-left:0;padding-left:0;padding-right:.5em;clear:left;float:left}figure.align-left>img{margin-left:0;padding-left:0}div.align-right,img.align-right,svg.align-right,video.align-right{padding-left:.5em;clear:right;float:right}figure.align-right{clear:right;float:right}figure.align-right>img{justify-self:right;padding:0}table.align-right{margin-right:2.5%}figure.align-center{align-content:center;justify-content:center}figure.align-center>img{padding-left:0;justify-self:center}.admonition.marginal,.marginal,.topic.marginal,aside.sidebar{background-color:#efefea;box-sizing:border-box;margin-left:2%;margin-right:0;padding:.5em;font-size:.8em}aside.sidebar{background-color:inherit}.footnote{font-size:smaller}@media (min-width:35em){footer,header,main{padding:.5em calc(15% - 3rem);line-height:1.6}.admonition.marginal,.marginal,.topic.marginal,aside.sidebar{max-width:45%;float:right;clear:right}dl.docinfo>dd,dl.field-list>dd,dl.option-list>dd{margin-left:6em}}@media (min-width:65em){main,section{display:grid;grid-template-columns:[content] minmax(0,6fr) [margin] 3fr [end];grid-column-gap:calc(3em + 1%)}main>section,section>section{grid-column:1/end}footer,header,main{padding-right:5%}section>figure{display:contents}.citation.align-left,.footnote.align-left,figure>img,main>*,section>*{grid-column:content}.citation.align-left{font-size:1em;padding-left:1.5em}.citation.align-left .label{margin-left:-1.5em}figure>img{margin:.5em 2%;padding-left:1em}.admonition.marginal,.citation,.footnote,.marginal,.topic.marginal,aside.sidebar,figcaption{grid-column:margin;width:auto;max-width:55em;margin:.5em 0;border:none;padding:0;font-size:.8em;text-align:initial;background-color:inherit}.admonition.marginal{padding:.5em}figure.marginal{display:block;margin:.5em 0}.citation,.footnote{padding-left:0}.citation .label,.footnote .label{margin-left:0}.fullwidth,.fullwidth figcaption,.fullwidth img,aside.system-message,div.abstract,div.dedication,dl.docinfo,h1.title,nav.contents,p.subtitle,pre{grid-column:content/end;margin-right:calc(10% - 3rem);max-width:55em}}@media (min-width:100em){footer,header,main{padding-left:30%}main>nav.contents{position:fixed;top:0;left:0;box-sizing:border-box;width:25%;height:100vh;margin:0;background-color:#fafaf6;padding:5.5em 2%;overflow:auto}main>nav.contents>*{padding-left:0}} \ No newline at end of file diff --git a/docs/main.de.html b/docs/main.de.html index 632c0ff..3627cf0 100644 --- a/docs/main.de.html +++ b/docs/main.de.html @@ -321,11 +321,14 @@
Das Holen einer Verbindung kann etwas beschleunigt werden, indem man den Parameter threadlocal auf threading.local setzt; dies könnte aber in einigen Umgebungen nicht funktionieren (es ist zum Beispiel bekannt, dass @@ -428,12 +431,15 @@
By setting the threadlocal parameter to threading.local, getting connections may become a bit faster, but this may not work in all environments (for instance, mod_wsgi is known to cause problems @@ -374,7 +377,7 @@
db = pool.dedicated_connection()
If you don't need it anymore, you should immediately return it to the pool with db.close(). You can get another connection in the same way.
-Warning: In a threaded environment, never do the following:
+⚠ Warning: In a threaded environment, never do the following:
pool.connection().cursor().execute(...)
This would release the connection too early for reuse which may be fatal if the connections are not thread-safe. Make sure that the connection @@ -390,11 +393,14 @@