<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>CodeProject Latest postings for Python</title>
    <link>https://www.codeproject.com</link>
    <description>Latest postings for Python from CodeProject</description>
    <language>en-us</language>
    <image>
      <title>CodeProject Latest postings for Python</title>
      <url>https://www.codeproject.com/App_Themes/Std/Img/logo100x30.gif</url>
      <link>https://www.codeproject.com</link>
      <width>100</width>
      <height>30</height>
      <description>CodeProject</description>
    </image>
    <copyright>Copyright  CodeProject, 1999-2024</copyright>
    <webMaster>Webmaster@codeproject.com (Webmaster)</webMaster>
    <lastBuildDate>Fri, 12 Jul 2024 23:34:00 GMT</lastBuildDate>
    <ttl>20</ttl>
    <generator>C# Hand-coded goodness</generator>
    <item>
      <title>Forum Guidelines - PLEASE READ</title>
      <description>When posting your question please:
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Ensure this question is about Python.&lt;/b&gt;.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;&lt;b&gt;Be specific!&lt;/b&gt; Don't ask "can someone send me the code to create an application that does 'X'. Pinpoint exactly what it is you need help with.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;Keep the subject line brief, but descriptive. eg "File Serialization problem"&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;Keep the question as brief as possible. If you have to include code, include the smallest snippet of code you can.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;Be careful when including code that you haven't made a typo. Typing mistakes can become the focal point instead of the actual question you asked.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;If you are posting source code with your question, place it inside &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt; tags. We advise you also check the "Encode HTML tags when pasting" checkbox before pasting anything inside the PRE block, and make sure "Ignore HTML tags in this message" check box is unchecked.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;Be courteous and DON'T SHOUT. Everyone here helps because they enjoy helping others, not because it's their job.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;Please do not post links to your question in one forum from another, unrelated forum (such as the lounge). It will be deleted.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;Do not be abusive, offensive, inappropriate or harass anyone on the boards. Doing so will get you kicked off and banned. Play nice.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;If you have a school or university assignment, assume that your teacher or lecturer is also reading these forums. &lt;br /&gt;

&lt;/li&gt;&lt;li&gt;No advertising or soliciting.&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;We reserve the right to move your posts to a more appropriate forum or to delete anything deemed inappropriate or illegal.&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;
When answering a question please:
&lt;ol&gt;&lt;li&gt;Read the question carefully&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;Understand that English isn't everyone's first language so be lenient of bad spelling and grammar&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;If a question is poorly phrased then either ask for clarification, ignore it, or mark it down. &lt;b&gt;Insults are not welcome&lt;/b&gt;&lt;br /&gt;

&lt;/li&gt;&lt;li&gt;If the question is inappropriate then click the 'vote to remove message' button
&lt;/li&gt;&lt;/ol&gt;
Insults, slap-downs and sarcasm aren't welcome. Let's work to help developers, not make them feel stupid.&lt;br /&gt;

&lt;div class="signature"&gt;cheers&lt;br /&gt;
Chris Maunder&lt;/div&gt;</description>
      <author>Chris Maunder</author>
      <link>https://www.codeproject.com/Messages/5902751/Forum-Guidelines-PLEASE-READ</link>
      <pubDate>Wed, 05 Oct 2022 22:14:00 GMT</pubDate>
      <guid>3_5902751</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>&amp;#191;C&amp;#243;mo programar una secuencia en Python?</title>
      <description>&lt;img src="https://www.codeproject.com/script/Forums/Images/smiley_smile.gif" align="top" alt="Smile | :)" /&gt;</description>
      <author>ericro</author>
      <link>https://www.codeproject.com/Messages/6009308/sharp191-C-sharp243-mo-programar-una-secuencia-en</link>
      <pubDate>Thu, 11 Jul 2024 03:36:00 GMT</pubDate>
      <guid>3_6009308</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Telegram bot for membership management</title>
      <description>Hello/Good evening everyone,&lt;br /&gt;
&lt;br /&gt;
I'm new to the field of programming and have been trying to fill my knowledge gap with AI. My goal is to create a bot that instantly sends a message to a user whenever they request membership to the group the bot is affiliated with.&lt;br /&gt;
&lt;br /&gt;
After numerous attempts with the help of AI, I managed to obtain a usable code. Unfortunately, when I run it, nothing happens.&lt;br /&gt;
&lt;br /&gt;
Here is the link to my GitHub project: https://github.com/tesbgtoi/ybot&lt;br /&gt;
&lt;br /&gt;
If anyone has experience with the Telegram API and could help me identify what's not working or provide advice on fixing my code, I would be extremely grateful.&lt;br /&gt;
&lt;br /&gt;
Thank you very much for your help!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class='pre-lang' id='premain185215'&gt;&lt;div&gt;Python&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode185215' class='copy-code' data-index='185215' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre185215' style='margin-top:0;' class='lang-python' data-language='python' data-allowShrink='True' data-collapse='False'&gt;
&lt;span class="code-keyword"&gt;import&lt;/span&gt; logging
&lt;span class="code-keyword"&gt;from&lt;/span&gt; telegram &lt;span class="code-keyword"&gt;import&lt;/span&gt; Bot
&lt;span class="code-keyword"&gt;from&lt;/span&gt; telegram.error &lt;span class="code-keyword"&gt;import&lt;/span&gt; TelegramError

&lt;span class="code-comment"&gt;#&lt;/span&gt;&lt;span class="code-comment"&gt; Configurez le logging&lt;/span&gt;
logging.basicConfig(
    format=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;%(asctime)s - %(name)s - %(levelname)s - %(message)s&amp;#39;&lt;/span&gt;,
    level=logging.INFO
)
logger = logging.getLogger(__name__)

&lt;span class="code-comment"&gt;#&lt;/span&gt;&lt;span class="code-comment"&gt; Informations sp&amp;#233;cifiques&lt;/span&gt;
TOKEN = &lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;TOKEN_DU_BOT"&lt;/span&gt;
GROUP_ID = &lt;span class="code-digit"&gt;123456789&lt;/span&gt;  &lt;span class="code-comment"&gt;#&lt;/span&gt;&lt;span class="code-comment"&gt; Remplacez par l&amp;#39;ID de votre groupe&lt;/span&gt;

&lt;span class="code-comment"&gt;#&lt;/span&gt;&lt;span class="code-comment"&gt; Fonction pour r&amp;#233;cup&amp;#233;rer les demandes d&amp;#39;adh&amp;#233;sion en attente&lt;/span&gt;
async &lt;span class="code-keyword"&gt;def&lt;/span&gt; get_membership_requests(bot: Bot, group_id: &lt;span class="code-sdkkeyword"&gt;int&lt;/span&gt;) -&amp;gt; list:
    &lt;span class="code-keyword"&gt;try:&lt;/span&gt;
        administrators = await bot.get_chat_administrators(chat_id=group_id)
        membership_requests = []
        &lt;span class="code-keyword"&gt;for&lt;/span&gt; admin &lt;span class="code-keyword"&gt;in&lt;/span&gt; administrators:
            &lt;span class="code-keyword"&gt;if&lt;/span&gt; &lt;span class="code-keyword"&gt;not&lt;/span&gt; admin.user.is_bot:
                member = await bot.get_chat_member(chat_id=group_id, user_id=admin.user.&lt;span class="code-sdkkeyword"&gt;id&lt;/span&gt;)
                &lt;span class="code-keyword"&gt;if&lt;/span&gt; member.status == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;restricted&amp;#39;&lt;/span&gt;:
                    membership_requests.append(member)
        &lt;span class="code-keyword"&gt;return&lt;/span&gt; membership_requests
    &lt;span class="code-keyword"&gt;except&lt;/span&gt; TelegramError &lt;span class="code-keyword"&gt;as&lt;/span&gt; e:
        logger.error(f&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;Erreur lors de la r&amp;#233;cup&amp;#233;ration des demandes d&amp;#39;adh&amp;#233;sion : {e}"&lt;/span&gt;)
        &lt;span class="code-keyword"&gt;return&lt;/span&gt; []

&lt;span class="code-comment"&gt;#&lt;/span&gt;&lt;span class="code-comment"&gt; Fonction pour envoyer des messages aux utilisateurs en attente&lt;/span&gt;
async &lt;span class="code-keyword"&gt;def&lt;/span&gt; send_membership_notifications(bot: Bot, group_id: &lt;span class="code-sdkkeyword"&gt;int&lt;/span&gt;, membership_requests: &lt;span class="code-sdkkeyword"&gt;list&lt;/span&gt;) -&amp;gt; None:
    &lt;span class="code-keyword"&gt;for&lt;/span&gt; request &lt;span class="code-keyword"&gt;in&lt;/span&gt; membership_requests:
        &lt;span class="code-keyword"&gt;try:&lt;/span&gt;
            await bot.send_message(
                chat_id=request.user.&lt;span class="code-sdkkeyword"&gt;id&lt;/span&gt;,
                text=&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;Votre demande d&amp;#39;adh&amp;#233;sion au groupe a &amp;#233;t&amp;#233; re&amp;#231;ue. Veuillez patienter pendant que l&amp;#39;administrateur approuve votre demande."&lt;/span&gt;
            )
            logger.info(f&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;Notification envoy&amp;#233;e &amp;#224; l&amp;#39;utilisateur : {request.user.id}"&lt;/span&gt;)
        &lt;span class="code-keyword"&gt;except&lt;/span&gt; TelegramError &lt;span class="code-keyword"&gt;as&lt;/span&gt; e:
            logger.error(f&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;Erreur lors de l&amp;#39;envoi de la notification &amp;#224; l&amp;#39;utilisateur {request.user.id} : {e}"&lt;/span&gt;)

async &lt;span class="code-keyword"&gt;def&lt;/span&gt; main() -&amp;gt; None:
    bot = Bot(token=TOKEN)

    &lt;span class="code-comment"&gt;#&lt;/span&gt;&lt;span class="code-comment"&gt; R&amp;#233;cup&amp;#233;rer les demandes d&amp;#39;adh&amp;#233;sion en attente&lt;/span&gt;
    membership_requests = await get_membership_requests(bot, GROUP_ID)

    &lt;span class="code-comment"&gt;#&lt;/span&gt;&lt;span class="code-comment"&gt; Envoyer des messages aux utilisateurs en attente&lt;/span&gt;
    await send_membership_notifications(bot, GROUP_ID, membership_requests)

&lt;span class="code-keyword"&gt;if&lt;/span&gt; __name__ == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;__main__&amp;#39;&lt;/span&gt;:
    &lt;span class="code-keyword"&gt;import&lt;/span&gt; asyncio
    asyncio.run(main())&lt;/pre&gt;</description>
      <author>Mohamed Sylla 2024</author>
      <link>https://www.codeproject.com/Messages/6005588/Telegram-bot-for-membership-management</link>
      <pubDate>Fri, 14 Jun 2024 04:07:00 GMT</pubDate>
      <guid>3_6005588</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Memory Leak - Python &amp;amp; License Plate Reader</title>
      <description>&lt;div class='pre-lang' id='premain27910'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode27910' class='copy-code' data-index='27910' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre27910' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
I recently upgraded a Blue Iris install which was working with CP &lt;span class="code-digit"&gt;2&lt;/span&gt;.&lt;span class="code-digit"&gt;5&lt;/span&gt;.&lt;span class="code-digit"&gt;6&lt;/span&gt; without any difficulties. However, after upgrading to CP &lt;span class="code-digit"&gt;2&lt;/span&gt;.&lt;span class="code-digit"&gt;6&lt;/span&gt;.&lt;span class="code-digit"&gt;5&lt;/span&gt; (and installing &lt;span class="code-keyword"&gt;new&lt;/span&gt; modules Yolov5.net, Optical Character Recognition, and License Plate reader, I noticed that there &lt;span class="code-keyword"&gt;is&lt;/span&gt; a slow buildup of ram use by Python that I did not have before. In the past, the system ram use was stable over weeks and months but now over the course of several days system ram use slowly ramps up.

In Task Manager, I can see that Python &lt;span class="code-keyword"&gt;is&lt;/span&gt; &lt;span class="code-keyword"&gt;using&lt;/span&gt; the majority of the system RAM.  If I stop the License Plate Reader module leaving the other two modules running, python memory use disappears &lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; Task manager and overall ram use &lt;span class="code-keyword"&gt;is&lt;/span&gt; normal.  Restarting License Plate Reader module restarts python with typical normal RAM use but after several days, it will become excessive (&lt;span class="code-keyword"&gt;in&lt;/span&gt; excess of &lt;span class="code-digit"&gt;6&lt;/span&gt; GB).  

appears to be a memory leak &lt;span class="code-keyword"&gt;in&lt;/span&gt; License Plate Reader with CP &lt;span class="code-digit"&gt;2&lt;/span&gt;.&lt;span class="code-digit"&gt;6&lt;/span&gt;.&lt;span class="code-digit"&gt;5&lt;/span&gt; that did not exist &lt;span class="code-keyword"&gt;in&lt;/span&gt; &lt;span class="code-digit"&gt;2&lt;/span&gt;.&lt;span class="code-digit"&gt;5&lt;/span&gt;.&lt;span class="code-digit"&gt;6&lt;/span&gt;?&lt;/pre&gt;</description>
      <author>Member 16281045</author>
      <link>https://www.codeproject.com/Messages/6004622/Memory-Leak-Python-amp-License-Plate-Reader</link>
      <pubDate>Fri, 07 Jun 2024 01:11:00 GMT</pubDate>
      <guid>3_6004622</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>source code</title>
      <description>&lt;div class='pre-lang' id='premain319475'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode319475' class='copy-code' data-index='319475' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre319475' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
source code of glocery management system &lt;span class="code-keyword"&gt;using&lt;/span&gt; php&lt;/pre&gt;</description>
      <author>Member 16277784</author>
      <link>https://www.codeproject.com/Messages/6003712/source-code</link>
      <pubDate>Sun, 02 Jun 2024 09:14:00 GMT</pubDate>
      <guid>3_6003712</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Huawei MSC CDR Decoder .dat</title>
      <description>I want to use python for decoder my .dat binary file generate by MSC Huawei MSOFTX3000 i need a compiler and other class to optimize and autamatise process for .dat file to oracle database</description>
      <author>Member 16253942</author>
      <link>https://www.codeproject.com/Messages/5998951/Huawei-MSC-CDR-Decoder-dat</link>
      <pubDate>Mon, 29 Apr 2024 14:10:00 GMT</pubDate>
      <guid>3_5998951</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Algorithm to Efficiently Search a Solution Space</title>
      <description>I'm looking for advice on how to efficiently search a solution space under certain conditions.&lt;br /&gt;
&lt;br /&gt;
The solution space is a multidimensional array of positive integers. At each point in the array I run a function that either fails or passes. Importantly, if a point passes, then every point "under" it will also pass and doesn't need to be tested.&lt;br /&gt;
&lt;br /&gt;
To illustrate, a 2D example would be an array of X and Y where X is 0 - 10 and Y is 0 - 15. If the point (2,3) passes then I know that (2,2), (2,1), (2,0), (1,3), (1,2), (1,1), (1,0), (0,3), (0,2) (0,1), (0,0) will also pass. Each of those points is "under" (2,3) in the sense that each element is less than or equal to it. There can be multiple “upper” pass points - for example, (1,5) could be a pass point in addition to (2,3).&lt;br /&gt;
&lt;br /&gt;
I've already gleaned that it's more efficient to search the solution space from high to low values, because if an "upper" point passes then there's no need to test the "lower" points. But any advice beyond that is greatly appreciated, thank you!</description>
      <author>Member 16247362</author>
      <link>https://www.codeproject.com/Messages/5997754/Algorithm-to-Efficiently-Search-a-Solution-Space</link>
      <pubDate>Sat, 20 Apr 2024 04:35:00 GMT</pubDate>
      <guid>3_5997754</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Delete profile</title>
      <description>Hello I'm working on a Twitter Clone project and receiving an error when I try to delete profile. Here's the error message.&lt;br /&gt;
&lt;div class='pre-lang' id='premain176208'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode176208' class='copy-code' data-index='176208' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre176208' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) &lt;span class="code-keyword"&gt;null&lt;/span&gt; &lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; &lt;span class="code-keyword"&gt;in&lt;/span&gt; column &lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;user_id"&lt;/span&gt; of relation &lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;messages"&lt;/span&gt; violates not-null constraint
DETAIL:  Failing row contains (&lt;span class="code-digit"&gt;11&lt;/span&gt;, Hello Guys, 2024-04-19 &lt;span class="code-digit"&gt;13&lt;/span&gt;:&lt;span class="code-digit"&gt;02&lt;/span&gt;:&lt;span class="code-digit"&gt;36&lt;/span&gt;.&lt;span class="code-digit"&gt;170058&lt;/span&gt;, &lt;span class="code-keyword"&gt;null&lt;/span&gt;).&lt;/pre&gt;</description>
      <author>Antwane Nix</author>
      <link>https://www.codeproject.com/Messages/5997633/Delete-profile</link>
      <pubDate>Fri, 19 Apr 2024 14:02:00 GMT</pubDate>
      <guid>3_5997633</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>nested loop python</title>
      <description>* 
 ***&lt;br /&gt;
*****</description>
      <author>MD ARMAN from Durham</author>
      <link>https://www.codeproject.com/Messages/5989404/nested-loop-python</link>
      <pubDate>Fri, 23 Feb 2024 15:17:00 GMT</pubDate>
      <guid>3_5989404</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Database</title>
      <description>I would like to request assistance with my code, where when inserting a table into the database from Python, the system replies with an error that says that the table is not nonexistent. However, the table is there.&lt;br /&gt;
&lt;br /&gt;
Cafeteria.py&lt;br /&gt;
import sqlite3&lt;br /&gt;
from Chef_staff import *&lt;br /&gt;
conn = sqlite3.connect('Chef__Order.db')&lt;br /&gt;
curs = conn.cursor()&lt;br /&gt;
MembersID = {'Aria': 'ID001', 'Barston': 'ID002', 'CJ': 'ID003', 'Damarsh': 'ID004', 'Elaine': 'ID005'}&lt;br /&gt;
MembersFeedback = {'Aria': 0, 'Barston': 0, 'CJ': 0, 'Damarsh': 0, 'Elaine': 0} &lt;br /&gt;
MembersOrder = {'Aria': 0, 'Barston': 0, 'CJ': 0, 'Damarsh': 0, 'Elaine': 0}&lt;br /&gt;
Food = {'Burger': 5.00, 'Pancakes': 2.00, 'Sandwiches': 2.50, 'Steak': 10.00, 'Fries': 1.50, 'Tea': 0.50, 'Coffee': 0.75}&lt;br /&gt;
FoodRating = {'Burger': 0, 'Pancakes': 0, 'Sandwiches': 0, 'Steak': 0, 'Fries': 0, 'Tea': 0, 'Coffee': 0}&lt;br /&gt;
order_no = 0&lt;br /&gt;
burger_rate = 0&lt;br /&gt;
pancake_rate = 0&lt;br /&gt;
sandwich_rate = 0&lt;br /&gt;
steak_rate = 0&lt;br /&gt;
fries_rate = 0&lt;br /&gt;
tea_rate = 0&lt;br /&gt;
coffee_rate = 0&lt;br /&gt;
accumalated_b = 0&lt;br /&gt;
accumalated_p = 0&lt;br /&gt;
accumalated_sw = 0&lt;br /&gt;
accumalated_st = 0&lt;br /&gt;
accumalated_f = 0&lt;br /&gt;
accumalated_t = 0&lt;br /&gt;
accumalated_c = 0&lt;br /&gt;
while True:&lt;br /&gt;
    order_option = False&lt;br /&gt;
    login = input('Please enter your member username: ')&lt;br /&gt;
    for i in MembersID:&lt;br /&gt;
        if login == i:&lt;br /&gt;
          while order_option == False:&lt;br /&gt;
                    price = 0&lt;br /&gt;
                    order_no =+ 1&lt;br /&gt;
                    order = int(input('Please select which food you would like to order\n1. Burger\n2. Pancakes\n3. Sandwiches\n4. Steak\n5. Fries\n6. Tea\n7. Coffee\n'))&lt;br /&gt;
                    if order == 1:&lt;br /&gt;
                        amount_order = int(input('How many burgers would you like to order?\n'))&lt;br /&gt;
                        MembersOrder[i] += amount_order&lt;br /&gt;
                        print(f'You have ordered {amount_order} Burger, {login}')&lt;br /&gt;
                        price = Food['Burger'] * amount_order&lt;br /&gt;
                        curs.execute(f'INSERT INTO Progression (OrderNo, ID, Food, Quantity, Price) VALUES ({order_no},{MembersID[i]},"Burger",{amount_order},{price})')&lt;br /&gt;
                    elif order == 2:&lt;br /&gt;
                        amount_order = int(input('How many pancake would you like to order?\n'))&lt;br /&gt;
                        MembersOrder[i] += amount_order&lt;br /&gt;
                        print(f'You have ordered {amount_order} Pancakes, {login}')&lt;br /&gt;
                        price = Food['Pancakes'] * amount_order&lt;br /&gt;
                        curs.execute(f'INSERT INTO Progression (OrderNo, ID, Food, Quantity, Price) VALUES ({order_no},{MembersID[i]},"Pancakes",{amount_order},{price})')&lt;br /&gt;
                    elif order == 3:&lt;br /&gt;
                        amount_order = int(input('How many sandwich would you like to order?\n'))&lt;br /&gt;
                        MembersOrder[i] += amount_order&lt;br /&gt;
                        print(f'You have ordered {amount_order} Sandwiches, {login}')&lt;br /&gt;
                        price = Food['Sandwiches'] * amount_order&lt;br /&gt;
                        curs.execute(f'INSERT INTO Progression.tbl (OrderNo, ID, Food, Quantity, Price) VALUES ({order_no},{MembersID[i]},"Sandwiches",{amount_order},{price})')&lt;br /&gt;
                    elif order == 4:&lt;br /&gt;
                        amount_order = int(input('How many Steak would you like to order?\n'))&lt;br /&gt;
                        MembersOrder[i] += amount_order&lt;br /&gt;
                        print(f'You have ordered {amount_order} Steak, {login}')&lt;br /&gt;
                        price = Food['Steak'] * amount_order&lt;br /&gt;
                        curs.execute(f'INSERT INTO Progression (OrderNo, ID, Food, Quantity, Price) VALUES ({order_no},{MembersID[i]},"Steak",{amount_order},{price})')&lt;br /&gt;
                    elif order == 5:&lt;br /&gt;
                        amount_order = int(input('How many packet of fries would you like to order?\n'))&lt;br /&gt;
                        MembersOrder[i] += amount_order&lt;br /&gt;
                        print(f'You have ordered {amount_order} packet of fries, {login}')&lt;br /&gt;
                        price = Food['Fries'] * amount_order&lt;br /&gt;
                        curs.execute(f'INSERT INTO Progression (OrderNo, ID, Food, Quantity, Price) VALUES ({order_no},{MembersID[i]},"Fries",{amount_order},{price})')&lt;br /&gt;
                    elif order == 6:&lt;br /&gt;
                        amount_order = int(input('How many tea would you like to order?\n'))&lt;br /&gt;
                        MembersOrder[i] += amount_order&lt;br /&gt;
                        print(f'You have ordered {amount_order} tea, {login}')&lt;br /&gt;
                        price = Food['Tea'] * amount_order&lt;br /&gt;
                        curs.execute(f'INSERT INTO Progression (OrderNo, ID, Food, Quantity, Price) VALUES ({order_no},{MembersID[i]},"Tea",{amount_order},{price})')&lt;br /&gt;
                    elif order == 7:&lt;br /&gt;
                        amount_order = int(input('How many coffee would you like to order?\n'))&lt;br /&gt;
                        MembersOrder[i] += amount_order&lt;br /&gt;
                        print(f'You have ordered {amount_order} coffee, {login}')&lt;br /&gt;
                        price = Food['Coffee'] * amount_order&lt;br /&gt;
                        curs.execute(f'INSERT INTO Progression (OrderNo, ID, Food, Quantity, Price) VALUES ({order_no},{MembersID[i]},"Coffee",{amount_order},{price})')&lt;br /&gt;
                    else:&lt;br /&gt;
                        print('Please enter a valid number')&lt;br /&gt;
                    order_option1 = input('Would you like to order more? Y/N\n')&lt;br /&gt;
                    if order_option1 == 'Y':&lt;br /&gt;
                        order_option = False&lt;br /&gt;
                    elif order_option1 == 'N':&lt;br /&gt;
                        order_option = True&lt;br /&gt;
          option = input('Would you like to give a rating? (Y/N)')&lt;br /&gt;
          if option == 'Y':&lt;br /&gt;
                    curs.execute(f'INSERT INTO Members (Feedback) VALUE (Feedback + 1)')          &lt;br /&gt;
                    selection = int(input('Please select which food to rate\n1. Burger\n2. Pancakes\n3. Sandwiches\n'))&lt;br /&gt;
                    if 1 &amp;lt;= selection &amp;lt;= 7 :&lt;br /&gt;
                        rating = int(input('Please rate your experience from 1 to 5: '))&lt;br /&gt;
                        if rating &amp;gt; 0 and rating &amp;lt; 6:&lt;br /&gt;
                          if selection == 1:&lt;br /&gt;
                            burger_rate += 1&lt;br /&gt;
                            FoodRating['Burger'] = int((accumalated_b + rating) / burger_rate)&lt;br /&gt;
                            curs.execute(f'INSERT INTO Food (Ratings) Value')&lt;br /&gt;
                          elif selection == 2:&lt;br /&gt;
                            pancake_rate += 1&lt;br /&gt;
                            FoodRating['Pancakes'] = int((accumalated_p + rating) / pancake_rate)&lt;br /&gt;
                          elif selection == 3:&lt;br /&gt;
                            sandwich_rate += 1&lt;br /&gt;
                            FoodRating['Sandwiches'] = int((accumalated_sw + rating) / sandwich_rate)&lt;br /&gt;
                          elif selection == 4:&lt;br /&gt;
                            steak_rate += 1&lt;br /&gt;
                            FoodRating['Steak'] = int((accumalated_st + rating) / steak_rate)&lt;br /&gt;
                          elif selection == 5:&lt;br /&gt;
                            fries_rate += 1&lt;br /&gt;
                            FoodRating['Fries'] = int((accumalated_f + rating) / fries_rate)&lt;br /&gt;
                          elif selection == 6:&lt;br /&gt;
                            tea_rate += 1&lt;br /&gt;
                            FoodRating['Tea'] = int((accumalated_t + rating) / tea_rate)&lt;br /&gt;
                          elif selection == 7:&lt;br /&gt;
                            coffee_rate += 1&lt;br /&gt;
                            FoodRating['Coffe'] = int((accumalated_c + rating) / coffee_rate)&lt;br /&gt;
                        else:&lt;br /&gt;
                          print('valid rating is 1 to 5')&lt;br /&gt;
          print(f'Number of orders ordered by members\n {MembersOrder}')&lt;br /&gt;
          print(f'Current food rating\n{FoodRating}')&lt;br /&gt;
&lt;br /&gt;
Database table_DB browser&lt;br /&gt;
CREATE TABLE "Chef" ( "ChefID" TEXT NOT NULL, "Chefs" TEXT NOT NULL, "Meals cooked No." INTEGER, PRIMARY KEY("ChefID","Chefs") )&lt;br /&gt;
CREATE TABLE "Food" ("FoodID" INTEGER, "Food names" TEXT, "Ratings" INTEGER, "Price" INTEGER, PRIMARY KEY("Price", "Food names", "FoodID"))&lt;br /&gt;
CREATE TABLE "Members" ("ID" TEXT NOT NULL, "Names" TEXT, "Feedback" INTEGER, PRIMARY KEY("ID","Names"))&lt;br /&gt;
CREATE TABLE "Progression" ("OrderNo" INTEGER, "ID" TEXT, "Food" TEXT, "Quantity" INTEGER, "Price" REAL, "Progress" TEXT, FOREIGN KEY("ID") REFERENCES "Members"("ID")) CREATE TABLE sqlite_sequence(name,seq)&lt;br /&gt;
&lt;br /&gt;
Chef_staff.py&lt;br /&gt;
ChefID = {'Harlow': 'ID010', 'Benedict': 'ID011', 'Carlson': 'ID012'}&lt;br /&gt;
ChefOrder = {'Harlow': 0, 'Benedict': 0, 'Carlson': 0}</description>
      <author>skmsjh</author>
      <link>https://www.codeproject.com/Messages/5986135/Database</link>
      <pubDate>Tue, 06 Feb 2024 02:22:00 GMT</pubDate>
      <guid>3_5986135</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>to_byte()</title>
      <description>Hi,&lt;br /&gt;
I am trying to understand a code in python:&lt;br /&gt;
what something similar to mystruct((0x03).to_byte(),'little') means?. trying to convert it to c.</description>
      <author>utcode</author>
      <link>https://www.codeproject.com/Messages/5985726/to-byte</link>
      <pubDate>Sat, 03 Feb 2024 04:22:00 GMT</pubDate>
      <guid>3_5985726</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>I need python code for multiple page pdf extraction</title>
      <description>please send the codes, i can learn from that</description>
      <author>Deepak Vasudevan 2023</author>
      <link>https://www.codeproject.com/Messages/5971592/I-need-python-code-for-multiple-page-pdf-extractio</link>
      <pubDate>Tue, 07 Nov 2023 04:35:00 GMT</pubDate>
      <guid>3_5971592</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>What is the difference between "C:\\my folder" and r"C:\my folder" in Python</title>
      <description>What is the difference between "C:\\my folder" and r"C:\my folder" in Python?&lt;br /&gt;
Can the "C:\\my folder" be written as  r"C:\my folder"?&lt;br /&gt;
Thanks.</description>
      <author>s yu</author>
      <link>https://www.codeproject.com/Messages/5966988/What-is-the-difference-between-C-my-folder-and-r-C</link>
      <pubDate>Thu, 12 Oct 2023 16:44:00 GMT</pubDate>
      <guid>3_5966988</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>FLAMES game in python</title>
      <description># Gives the name of the game&lt;br /&gt;
print ("\t FLAMES")&lt;br /&gt;
print ("\n")&lt;br /&gt;
# Take input from user&lt;br /&gt;
# And Saved them in lowercase&lt;br /&gt;
name1 = input("Name of the first person : ").lower()&lt;br /&gt;
name2 = input("Name of the second person : ").lower()&lt;br /&gt;
print ("\n")&lt;br /&gt;
# If there any space in between names&lt;br /&gt;
# In this stage removing all the spaces&lt;br /&gt;
rename1 = name1.replace(" ", "")&lt;br /&gt;
rename2 = name2.replace(" ", "")&lt;br /&gt;
# Added those name &lt;br /&gt;
name = rename1 + rename2&lt;br /&gt;
# In here removing same characters&lt;br /&gt;
for x in name:&lt;br /&gt;
        if name.count(x) != 1:&lt;br /&gt;
            name = name.replace(x,"")&lt;br /&gt;
# Check total number of remaining characters            &lt;br /&gt;
number = len(name)&lt;br /&gt;
# List of FLAMES acronym&lt;br /&gt;
&lt;br /&gt;
result = ["Friends","Love","Affection","Marriage","Enemy","Siblings"]   &lt;br /&gt;
&lt;br /&gt;
while number &gt; 1 :&lt;br /&gt;
&lt;br /&gt;
    split_result = (number % len(result) -1)&lt;br /&gt;
    if split_result &gt;= 0 :&lt;br /&gt;
          right = result[split_result + 1:]&lt;br /&gt;
          left = result[: split_result]&lt;br /&gt;
          result = right + left&lt;br /&gt;
    else:&lt;br /&gt;
         result = result[: len(result) - 1]&lt;br /&gt;
&lt;br /&gt;
      &lt;br /&gt;
print("Relationship status :", result[0])&lt;br /&gt;
&lt;br /&gt;
#"split_result = (number % len(result) -1) " SHOWS THAT THERE IS ZERODIVITION ERROR HOW TO CORRECT THAT ?</description>
      <author>ganga devi 2023</author>
      <link>https://www.codeproject.com/Messages/5966226/FLAMES-game-in-python</link>
      <pubDate>Sun, 08 Oct 2023 06:20:00 GMT</pubDate>
      <guid>3_5966226</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>ObjectDetectionCoral v1.5.1 - where is python.exe</title>
      <description>I am trying to get the Coral M.2 card working with CPAI. This is on a new clean Windows build,  where I followed  the guidance referenced from this page &lt;a href="https://blueirissoftware.com/forum/viewtopic.php?t=3359"&gt;Coral TPU really does its work for CP.AI object recognition! - Blue Iris&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
All seems OK with CPAI itself but I can't get the Coral module loaded - it throws these errors:&lt;br /&gt;
&lt;br /&gt;
&lt;div class='pre-lang' id='premain483797'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode483797' class='copy-code' data-index='483797' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre483797' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
&lt;span class="code-digit"&gt;21&lt;/span&gt;:&lt;span class="code-digit"&gt;31&lt;/span&gt;:&lt;span class="code-digit"&gt;27&lt;/span&gt;:Error trying to start ObjectDetection (Coral) (objectdetection_coral_adapter.py)
&lt;span class="code-digit"&gt;21&lt;/span&gt;:&lt;span class="code-digit"&gt;31&lt;/span&gt;:&lt;span class="code-digit"&gt;27&lt;/span&gt;:An error occurred trying to start process &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;C:\Program Files\CodeProject\AI\modules\ObjectDetectionCoral\bin\windows\python37\venv\scripts\Python&amp;#39;&lt;/span&gt; with working directory &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;C:\Program Files\CodeProject\AI\modules\ObjectDetectionCoral&amp;#39;&lt;/span&gt;. The system cannot find the file specified.
&lt;span class="code-digit"&gt;21&lt;/span&gt;:&lt;span class="code-digit"&gt;31&lt;/span&gt;:&lt;span class="code-digit"&gt;27&lt;/span&gt;:   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at CodeProject.AI.Server.Modules.ModuleProcessServices.StartProcess(ModuleConfig module)
&lt;span class="code-digit"&gt;21&lt;/span&gt;:&lt;span class="code-digit"&gt;31&lt;/span&gt;:&lt;span class="code-digit"&gt;27&lt;/span&gt;:Please check the CodeProject.AI installation completed successfully&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
The folder exists, but is empty. Have I missed a step in installation? What is the best way to fix this, please? Any advice would be much appreciated. Thanks.</description>
      <author>Richard N</author>
      <link>https://www.codeproject.com/Messages/5966111/ObjectDetectionCoral-v1-5-1-where-is-python-exe</link>
      <pubDate>Fri, 06 Oct 2023 20:43:00 GMT</pubDate>
      <guid>3_5966111</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>HOW TO register in Azure DevOps a CallBack, which triggers a Python function when a work items has been updated</title>
      <description>Hi folks,&lt;br /&gt;
&lt;br /&gt;
I wrote a simple Python script to create programmatically Azure DevOps works items.&lt;br /&gt;
&lt;br /&gt;
I spent not too much time until that worked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But now I need a second task to full fill. I need to react programmatically to Azure DevOps events. &lt;br /&gt;
Even in the English Wiki page it is mentioned, that this is possible:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://en.wikipedia.org/wiki/Azure_DevOps_Server#Extensibility"&gt;Azure DevOps Server - Wikipedia&lt;/a&gt;[&lt;a href="https://en.wikipedia.org/wiki/Azure_DevOps_Server#Extensibility" target="_blank" title="New Window"&gt;^&lt;/a&gt;]&lt;br /&gt;
Quoting Wiki: &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ...  Another extensible mechanism is subscribing to system alerts: for example, alerts that a work item was changed, ... &amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In MSDN I found these articles:&lt;br /&gt;
&lt;a href="https://learn.microsoft.com/en-us/azure/devops/service-hooks/consumers?toc=%2Fazure%2Fdevops%2Fmarketplace-extensibility%2Ftoc.json&amp;amp;view=azure-devops"&gt;Service hook consumers - Azure DevOps | Microsoft Learn&lt;/a&gt;[&lt;a href="https://learn.microsoft.com/en-us/azure/devops/service-hooks/consumers?toc=%2Fazure%2Fdevops%2Fmarketplace-extensibility%2Ftoc.json&amp;amp;view=azure-devops" target="_blank" title="New Window"&gt;^&lt;/a&gt;]&lt;br /&gt;
&lt;a href="https://learn.microsoft.com/en-us/azure/devops/service-hooks/events?toc=%2Fazure%2Fdevops%2Fmarketplace-extensibility%2Ftoc.json&amp;amp;view=azure-devops"&gt;Service hooks events - Azure DevOps | Microsoft Learn&lt;/a&gt;[&lt;a href="https://learn.microsoft.com/en-us/azure/devops/service-hooks/events?toc=%2Fazure%2Fdevops%2Fmarketplace-extensibility%2Ftoc.json&amp;amp;view=azure-devops" target="_blank" title="New Window"&gt;^&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
Since I am a little bit in hurry, and since I wonder, whether even a Python script on my Computer can contain such a call back function, which will  be call in case of "work item has been modified"... I would appreciate any help....&lt;br /&gt;
&lt;br /&gt;
Meaning:    Helpful links, sample code and also the basic answer whether even such a Python script on my local computer can contain such a call back ? &lt;br /&gt;
&lt;br /&gt;
May be it must a server site script ?&lt;br /&gt;
&lt;br /&gt;
Any quick, good and helpful hints are really warmly welcome...    many THX in advance &lt;img src="https://codeproject.global.ssl.fastly.net/script/Forums/Images/thumbs_up.gif" align="top" alt="Thumbs Up | :thumbsup:" /&gt;</description>
      <author>Member 14068019</author>
      <link>https://www.codeproject.com/Messages/5960888/HOW-TO-register-in-Azure-DevOps-a-CallBack-which-t</link>
      <pubDate>Wed, 06 Sep 2023 19:32:00 GMT</pubDate>
      <guid>3_5960888</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Python Project</title>
      <description>I am working on emotion detection. I need gui for it whereby the gui displays three frames: 1st frame will be linked to browser and display youtube or any website, 2nd will be an emotion detection on screen and 3rd will be openBCI analysis frame.  I am just thinking, and I need this badly unfortunately i am a baby programmer in python. Please such codes to play around with.</description>
      <author>African Electronic Literature</author>
      <link>https://www.codeproject.com/Messages/5960321/Python-Project</link>
      <pubDate>Sun, 03 Sep 2023 07:15:00 GMT</pubDate>
      <guid>3_5960321</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Updating a Dictionary in python iteratively</title>
      <description>I will preface this by saying this is going to be a bit long. I have a few code piece to post, but I will try and only post the relevant pieces unless someone requests all of it.&lt;br /&gt;
&lt;br /&gt;
I am trying to build a small UI for updating some settings and then displaying some intake data on a raspberrypi. Python version is 3.9.2. The most logical way to save the settings I thought would be building JSON and then saving it to a file.&lt;br /&gt;
&lt;br /&gt;
I am struggling to get the json_data dictionary to update and retain the settings. I got rid of the __init__ for some tries using @classmethod with cls instead of self. I tried @staticmethod, but that didn't seem right based on what I think I understand about that decorator. I tried using args, **args, **kwargs into the function.&lt;br /&gt;
&lt;br /&gt;
The Settings.update_settings() is called from multiple classes in different .py files at different times to update the settings. I have been able to get the json_data to update, but the problem is after each call to update_settings the json_data is reset when using classmethod/staticmethod. When using self it is, which I think is expected, throwing a missing self argument when called outside the Settings class.&lt;br /&gt;
&lt;br /&gt;
I have not used classes in pretty much any of my previous projects because it was a single use script for a very specific purpose generally related to moving data around which only had a few small functions. I am trying to expand my abilities, but I am really struggling to understand and fix this issue. I have spent way too much time on this and have to go to the next hard part of using threading to display the data and then log it at certain intervals. So I am looking for some help to get this JSON to not reset every time I try and add to it.&lt;br /&gt;
&lt;br /&gt;
Here is the relevant portions of the MainApp where they input the first updates for the JSON in the Settings class.&lt;br /&gt;
&lt;br /&gt;
&lt;div class='pre-lang' id='premain511581'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode511581' class='copy-code' data-index='511581' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre511581' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; guizero import App, Box, info, Picture, PushButton, Text, TextBox, Window, yesno
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; datetime import datetime &lt;span class="code-keyword"&gt;as&lt;/span&gt; dt
import subprocess
import sys
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; data_output_setup_page import LoggerSetupPage
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; logging_data_display import DataDisplayPage
import logging &lt;span class="code-keyword"&gt;as&lt;/span&gt; log
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; utilities import Settings


&lt;span class="code-keyword"&gt;class&lt;/span&gt; MainApp:


    def __init__(self):

        self.submit_site_text = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Submit&amp;#39;&lt;/span&gt;

        self.app = App(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Epic One Water Pulse Logging&amp;#39;&lt;/span&gt;,
                       width=&lt;span class="code-digit"&gt;800&lt;/span&gt;, height=&lt;span class="code-digit"&gt;480&lt;/span&gt;, bg=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;#050f2b&amp;#39;&lt;/span&gt;)
        # Maximize the app window
        #self.app.tk.attributes(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;-fullscreen&amp;#39;&lt;/span&gt;, True)
        
        ........
    def run(self):

        self.app.display()
        
    def get_settings(self):

        self.settings = Settings.retrieve_settings()
        print(self.settings)
        &lt;span class="code-keyword"&gt;if&lt;/span&gt; not isinstance(self.settings, type(None)):
            load_settings = yesno(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Load Settings&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings file found. Load settings?&amp;#39;&lt;/span&gt;)
            &lt;span class="code-keyword"&gt;if&lt;/span&gt; load_settings:
                self.site_name.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = self.settings[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Site Name&amp;#39;&lt;/span&gt;]
                self.logger_setup.import_settings(self.settings)
        elif isinstance(self.settings, type(None)):
            info(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Config&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;No settings file found. Please configure settings.&amp;#39;&lt;/span&gt;)

    def check_json(self):

        self.local_settings = Settings.check_json()
        print(self.local_settings)
        &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.local_settings:
            info(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Config&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings ready for save.&amp;#39;&lt;/span&gt;)
            self.sv_stg_to_file.show()
        &lt;span class="code-keyword"&gt;else&lt;/span&gt;:
            self.sv_stg_to_file.hide()

    def site_lock(self):

        &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.submit_site_text == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Submit&amp;#39;&lt;/span&gt;:
            self.site_name.disable()
            self.submit_site_text = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Alter Site Name&amp;#39;&lt;/span&gt;
            Settings.update_settings({
                &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;:
                    {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Site Name&amp;#39;&lt;/span&gt;: self.site_name.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;}
                })
            self.get_settings()
            self.open_ds_button.show()
            self.open_db_button.show()

            # Add a log statement
            log.info(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Site name updated to {0}&amp;#39;&lt;/span&gt;.format(self.site_name.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;))

        &lt;span class="code-keyword"&gt;else&lt;/span&gt;:
            self.site_name.enable()
            self.submit_site_text = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Submit&amp;#39;&lt;/span&gt;
            self.open_ds_button.hide()
            self.open_db_button.hide()

            # Add a log statement
            log.info(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Site name updated to {0}&amp;#39;&lt;/span&gt;.format(self.site_name.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;))

        self.submit_site.text = self.submit_site_text&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
LoggerSetupPage class is next, it is long because I think it is important to understand what I am doing with it. Basically I have created a window where I create and destroy widgets after they are used to make the entries. This is why I need to iteratively update the json_data in Settings. I will remove as much as I can that is not relevant, but if you want the entire code I can link it from GitHub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class='pre-lang' id='premain760161'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode760161' class='copy-code' data-index='760161' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre760161' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; base64 import b64encode &lt;span class="code-keyword"&gt;as&lt;/span&gt; be
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; base64 import b64decode &lt;span class="code-keyword"&gt;as&lt;/span&gt; bd
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; datetime import datetime &lt;span class="code-keyword"&gt;as&lt;/span&gt; dt
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; guizero import Box, Combo, info, Picture, ListBox, PushButton, Text, TextBox, Window
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; utilities import Settings

&lt;span class="code-keyword"&gt;class&lt;/span&gt; LoggerSetupPage:

    def __init__(self, parent, main_app):

        self.parent = parent
        self.main_app = main_app
        self.current_row = &lt;span class="code-digit"&gt;0&lt;/span&gt;       
        self.settings_dict = {}
        self.widgets_to_destroy = []
        
        ...

        # Middle box
        self.mid_box = Box(self.parent, layout=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;grid&amp;#39;&lt;/span&gt;)

        self.config_selection = Combo(
            self.mid_box,
            options=[ &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output Config&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor Config&amp;#39;&lt;/span&gt;],
            command=self.check_selection,
            grid=[0, 0]
        )
        self.config_selection.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;
        self.config_selection.text_size = &lt;span class="code-digit"&gt;16&lt;/span&gt;

        # Bottom box &lt;span class="code-keyword"&gt;for&lt;/span&gt; buttons
        self.bottom_box = Box(self.parent, layout=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;grid&amp;#39;&lt;/span&gt;, align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;bottom&amp;#39;&lt;/span&gt;)

        self.return_button = PushButton(self.bottom_box,
                text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Return to Main Page&amp;#39;&lt;/span&gt;,
                command=self.return_to_main, align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;bottom&amp;#39;&lt;/span&gt;, grid=[0, 2])
        self.return_button.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

    def return_to_main(self):

        self.main_app.app.show()
        self.main_app.check_json()
        self.parent.destroy()

    def create_input_list(self):
        
            &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.config_selection.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output Config&amp;#39;&lt;/span&gt;:
                    
                self.data_output_choice_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output:&amp;#39;&lt;/span&gt;,
                grid=[0, 0])
                self.data_output_choice_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

                self.data_output_choice = Combo(self.mid_box,
                options=[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;local&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;s3&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;ftp&amp;#39;&lt;/span&gt;], command=self.check_sub_selection,
                grid=[1, 0])
                self.data_output_choice.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

                self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

                self.widgets_to_destroy.extend([
                    self.data_output_choice_label,
                    self.data_output_choice
                    ])

    def create_inputs(self):

        &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.config_selection.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor Config&amp;#39;&lt;/span&gt;:

            self.sn_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor Name:&amp;#39;&lt;/span&gt;,
                align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;, grid=[0, 1])
            self.sn_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;
            self.sn_input = TextBox(self.mid_box, grid=[1, 1], width=&lt;span class="code-digit"&gt;30&lt;/span&gt;,
                align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;,)
            self.sn_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;
            
            self.kf_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;K Factor:&amp;#39;&lt;/span&gt;,
                align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;, grid=[0, 2])
            self.kf_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;
            self.kf_input = TextBox(self.mid_box, grid=[1, 2], width=&lt;span class="code-digit"&gt;10&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;,)
            self.kf_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;
            
            self.su_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor Units:&amp;#39;&lt;/span&gt;,
                        align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;, grid=[0, 3])
            self.su_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;
            self.su_input = TextBox(self.mid_box, grid=[1, 3], width=&lt;span class="code-digit"&gt;10&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;,)
            self.su_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;
            
            self.du_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Desired Units:&amp;#39;&lt;/span&gt;, grid=[0, 4])
            self.du_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;
            self.du_input = TextBox(self.mid_box, grid=[1, 4], width=&lt;span class="code-digit"&gt;10&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;,)
            self.du_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.widgets_to_destroy.extend([
                self.sn_label,
                self.sn_input,
                self.kf_label,
                self.kf_input,
                self.su_label,
                self.su_input,
                self.du_label,
                self.du_input
                ])
                      
        elif self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;s3&amp;#39;&lt;/span&gt;:

            self.l_spacer = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;, grid=[0, 1], width = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;fill&amp;#39;&lt;/span&gt;)

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;             

            self.s3_bucket_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;S3 Bucket:&amp;#39;&lt;/span&gt;,
            grid=[0, 2], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_bucket_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.s3_bucket_input = TextBox(self.mid_box, grid=[1, 2], width=&lt;span class="code-digit"&gt;30&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_bucket_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.s3_prefix_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;S3 Folder:&amp;#39;&lt;/span&gt;,
            grid=[0, 3], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_prefix_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.s3_prefix_input = TextBox(self.mid_box, grid=[1, 3], width=&lt;span class="code-digit"&gt;30&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_prefix_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.s3_key_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;S3 Filename:&amp;#39;&lt;/span&gt;, 
            grid=[0, 4], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_key_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.s3_key_input = TextBox(self.mid_box, grid=[1, 4], width=&lt;span class="code-digit"&gt;30&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_key_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.s3_ak_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;User Access Key:&amp;#39;&lt;/span&gt;,
            grid=[0, 5], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_ak_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.s3_ak_input = TextBox(self.mid_box, grid=[1, 5], width=&lt;span class="code-digit"&gt;30&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_ak_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.s3_sk_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;User Secret Key:&amp;#39;&lt;/span&gt;,
            grid=[0, 6], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_sk_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.s3_sk_input = TextBox(self.mid_box, grid=[1, 6], width=&lt;span class="code-digit"&gt;30&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_sk_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.s3_role_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Role to Assume:&amp;#39;&lt;/span&gt;,
            grid=[0, 7], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_role_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.s3_role_input = TextBox(self.mid_box, grid=[1, 7], width=&lt;span class="code-digit"&gt;30&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.s3_role_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.widgets_to_destroy.extend([
                self.s3_bucket_label,
                self.s3_bucket_input,
                self.s3_prefix_label,
                self.s3_prefix_input,
                self.s3_key_label,
                self.s3_key_input,
                self.s3_ak_label,
                self.s3_ak_input,
                self.s3_sk_label,
                self.s3_sk_input,
                self.s3_role_label,
                self.s3_role_input,
                self.l_spacer
                ])

        elif self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;local&amp;#39;&lt;/span&gt;:
            
            self.l_spacer = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;, grid=[0, 1], width = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;fill&amp;#39;&lt;/span&gt;)

            self.email_address_label = Text(self.mid_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Email Address:&amp;#39;&lt;/span&gt;,
            grid=[0, 2], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.email_address_label.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.email_address_input = TextBox(self.mid_box, grid=[1, 2], width=&lt;span class="code-digit"&gt;40&lt;/span&gt;,
            align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;left&amp;#39;&lt;/span&gt;)
            self.email_address_input.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

            self.current_row += &lt;span class="code-digit"&gt;1&lt;/span&gt;

            self.widgets_to_destroy.extend([
                self.email_address_label,
                self.email_address_input,
                self.l_spacer
                ])
                         
        # Create a button to &lt;span class="code-keyword"&gt;return&lt;/span&gt; the ListBox to visible
        self.show_list_btn = PushButton(self.bottom_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Back to List&amp;#39;&lt;/span&gt;,
        command=self.show_config, grid=[0, self.current_row+1],
        align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;bottom&amp;#39;&lt;/span&gt;)
        self.show_list_btn.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;

        self.save_settings_btn = PushButton(self.bottom_box, text=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Save Settings&amp;#39;&lt;/span&gt;,
        command=self.save_settings, grid=[1, self.current_row+1], align=&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;bottom&amp;#39;&lt;/span&gt;)
        self.save_settings_btn.text_color = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;white&amp;#39;&lt;/span&gt;
        
        self.widgets_to_destroy.extend([
            self.show_list_btn,
            self.save_settings_btn
            ])
                
    def import_settings(self, kwargs):
        &lt;span class="code-keyword"&gt;if&lt;/span&gt; kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Location&amp;#39;&lt;/span&gt;] == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;s3&amp;#39;&lt;/span&gt;:
            self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;s3&amp;#39;&lt;/span&gt;
            self.s3_bucket_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Bucket&amp;#39;&lt;/span&gt;]
            self.s3_prefix_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Prefix&amp;#39;&lt;/span&gt;]
            self.s3_key_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Key&amp;#39;&lt;/span&gt;]
            self.s3_ak_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = bd(kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;]\
                [&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Auth&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Access Key&amp;#39;&lt;/span&gt;]).decode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)
            self.s3_sk_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = bd(kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;]\
                [&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Auth&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Secret Key&amp;#39;&lt;/span&gt;]).decode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)
            self.s3_role_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;]\
                [&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Auth&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Role&amp;#39;&lt;/span&gt;]
        elif kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Location&amp;#39;&lt;/span&gt;] == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;ftp&amp;#39;&lt;/span&gt;:
            self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;ftp&amp;#39;&lt;/span&gt;
            self.ftp_host_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Host&amp;#39;&lt;/span&gt;]
            self.ftp_port_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Port&amp;#39;&lt;/span&gt;]
            self.ftp_un_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = bd(kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;]\
                [&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Auth&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Username&amp;#39;&lt;/span&gt;]).decode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)
            self.ftp_pwd_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = bd(kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;]\
                [&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Auth&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Password&amp;#39;&lt;/span&gt;]).decode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)
            self.ftp_dir_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Directory&amp;#39;&lt;/span&gt;]
        &lt;span class="code-keyword"&gt;else&lt;/span&gt;:
            self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;local&amp;#39;&lt;/span&gt;
            self.email_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Email Address&amp;#39;&lt;/span&gt;]
        
        self.sn_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Name&amp;#39;&lt;/span&gt;]
        self.kf_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;K Factor&amp;#39;&lt;/span&gt;]
        self.su_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Standard Unit&amp;#39;&lt;/span&gt;]
        self.du_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; = kwargs[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Desired Unit&amp;#39;&lt;/span&gt;]
    
    def save_settings(self):

        &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.config_selection.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output Config&amp;#39;&lt;/span&gt;:
            &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;s3&amp;#39;&lt;/span&gt;:
                self.settings_dict.update({
                    &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {
                        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Ouput&amp;#39;&lt;/span&gt;: {
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Location&amp;#39;&lt;/span&gt;: self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Bucket&amp;#39;&lt;/span&gt;: self.s3_bucket_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Prefeix&amp;#39;&lt;/span&gt;: self.s3_prefix_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Key&amp;#39;&lt;/span&gt;: self.s3_key_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Access Key&amp;#39;&lt;/span&gt;: be(self.s3_ak_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;.encode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)),
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Secret Key&amp;#39;&lt;/span&gt;: be(self.s3_sk_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;.encode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)),
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Role&amp;#39;&lt;/span&gt;: self.s3_role_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;
                        }
                    }
                })

            elif self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;ftp&amp;#39;&lt;/span&gt;:
                self.settings_dict.update({
                    &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {
                        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Ouput&amp;#39;&lt;/span&gt;: {
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Location&amp;#39;&lt;/span&gt;: self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Host&amp;#39;&lt;/span&gt;: self.ftp_host_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;, 
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Port&amp;#39;&lt;/span&gt;: self.ftp_port_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Username&amp;#39;&lt;/span&gt;: be(self.ftp_un_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;.encode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)),
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Password&amp;#39;&lt;/span&gt;: be(self.ftp_pwd_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;.encode(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;utf-8&amp;#39;&lt;/span&gt;)),
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Directory&amp;#39;&lt;/span&gt;: self.ftp_dir_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;
                        }
                    }
                })
            &lt;span class="code-keyword"&gt;else&lt;/span&gt;:
                self.settings_dict.update({
                    &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {
                        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Ouput&amp;#39;&lt;/span&gt;: {
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Location&amp;#39;&lt;/span&gt;: self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Email Address&amp;#39;&lt;/span&gt;: self.email_address_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;
                        }
                    }
                })

        elif self.config_selection.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor Config&amp;#39;&lt;/span&gt;:
            self.settings_dict.update({
                &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {
                    &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;: {
                        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Name&amp;#39;&lt;/span&gt;: self.sn_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;K Factor&amp;#39;&lt;/span&gt;: self.kf_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Standard Unit&amp;#39;&lt;/span&gt;: self.su_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;,
                        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Desired Unit&amp;#39;&lt;/span&gt;: self.du_input.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt;
                    }
                }
            })
            
        Settings.update_settings(self.settings_dict)
        info(&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;success&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;settings staged.&amp;#39;&lt;/span&gt;)
        self.return_to_main()

    def check_selection(self):

        &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.config_selection.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output Config&amp;#39;&lt;/span&gt;:          
            # Hide the ListBox
            self.config_selection.hide()
            self.return_button.hide()
            
            # Create input widgets
            self.create_input_list()
            self.create_inputs()

        elif self.config_selection.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; == &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor Config&amp;#39;&lt;/span&gt;:
            # Hide the ListBox
            self.config_selection.hide()
            self.return_button.hide()
            
            # Create input widgets
            self.create_inputs()

    def check_sub_selection(self):

        &lt;span class="code-keyword"&gt;if&lt;/span&gt; self.data_output_choice.&lt;span class="code-sdkkeyword"&gt;value&lt;/span&gt; &lt;span class="code-keyword"&gt;in&lt;/span&gt; [&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;ftp&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;s3&amp;#39;&lt;/span&gt;] \
            and self.config_selection.visible == False:
            # Destroy input widgets and the &lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;Show List"&lt;/span&gt; button
            self.destroy_widgets()

            # Create input widgets
            self.create_inputs()

    def destroy_widgets(self):

        # Destroy existing input widgets &lt;span class="code-keyword"&gt;if&lt;/span&gt; there are any
        &lt;span class="code-keyword"&gt;for&lt;/span&gt; widget &lt;span class="code-keyword"&gt;in&lt;/span&gt; self.widgets_to_destroy:
            widget.destroy()

        self.widgets_to_destroy = []  # Clear the list

    def show_config(self):

        # Destroy input widgets and the &lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;Show List"&lt;/span&gt; button
        self.destroy_widgets()

        # Show the ListBox
        self.config_selection.show()
        self.return_button.show()&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Finally, the relevant pieces of the current iteration of my Settings class&lt;br /&gt;
&lt;br /&gt;
&lt;div class='pre-lang' id='premain471476'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode471476' class='copy-code' data-index='471476' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre471476' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; botocore.client import Config
import boto3
import collections.abc
import ftplib
import json
import logging

&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; base64 import b64decode &lt;span class="code-keyword"&gt;as&lt;/span&gt; bd
&lt;span class="code-sdkkeyword"&gt;from&lt;/span&gt; datetime import datetime &lt;span class="code-keyword"&gt;as&lt;/span&gt; dt


&lt;span class="code-keyword"&gt;class&lt;/span&gt; Settings:

    settings_directory = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;/home/ect-one-user/Desktop/One_Water_Pulse_Logger/config/&amp;#39;&lt;/span&gt;
    settings_filename = &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;_logger_config.json&amp;#39;&lt;/span&gt;
    json_data = {
        &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {
            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Site Name&amp;#39;&lt;/span&gt;: None,
            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;: {

                },
            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;: {
                
                },
            &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Email Address&amp;#39;&lt;/span&gt;: {

                }
            }
        }

    @staticmethod
    def update_settings(d):
    
       Settings.json_data.update(d)

    @staticmethod
    def check_json():
        print(Settings.json_data)
        &lt;span class="code-keyword"&gt;try&lt;/span&gt;:
            &lt;span class="code-keyword"&gt;if&lt;/span&gt; Settings.json_data[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Site Name&amp;#39;&lt;/span&gt;] &lt;span class="code-keyword"&gt;is&lt;/span&gt; not None \
                and Settings.json_data[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Name&amp;#39;&lt;/span&gt;] &lt;span class="code-keyword"&gt;is&lt;/span&gt; not None \
                and Settings.json_data[&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;][&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Location&amp;#39;&lt;/span&gt;] &lt;span class="code-keyword"&gt;is&lt;/span&gt; not None:
                &lt;span class="code-keyword"&gt;return&lt;/span&gt; True
        except:
            &lt;span class="code-keyword"&gt;return&lt;/span&gt; False&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
I have tried multiple ways of updating the json_data as well - .update(), setattr, d | json_data. So far .update is the only one that has done anything, but it isn't quite right. With this current iteration of my Settings class and the other two classes which I posted here is the outcome&lt;br /&gt;
&lt;br /&gt;
&lt;div class='pre-lang' id='premain79269'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode79269' class='copy-code' data-index='79269' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre79269' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
On Start up - check_json {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Site Name&amp;#39;&lt;/span&gt;: None, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;: {}, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Output&amp;#39;&lt;/span&gt;: {}, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Email Address&amp;#39;&lt;/span&gt;: {}}}

after save settings button on LoggerSetupPage with local chosen &lt;span class="code-keyword"&gt;for&lt;/span&gt; the Data Output - check_json {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Data Ouput&amp;#39;&lt;/span&gt;: {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Location&amp;#39;&lt;/span&gt;: &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;local&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Email Address&amp;#39;&lt;/span&gt;: &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;}}}

after save settings button on LoggerSetupPage post Data Output &lt;span class="code-sdkkeyword"&gt;when&lt;/span&gt; I entered sensor setup - check_json {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Settings&amp;#39;&lt;/span&gt;: {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Sensor&amp;#39;&lt;/span&gt;: {&lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Name&amp;#39;&lt;/span&gt;: &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;123&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;K Factor&amp;#39;&lt;/span&gt;: &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;123&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Standard Unit&amp;#39;&lt;/span&gt;: &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;2512&amp;#39;&lt;/span&gt;, &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;Desired Unit&amp;#39;&lt;/span&gt;: &lt;span class="code-string"&gt;&amp;#39;&lt;/span&gt;&lt;span class="code-string"&gt;441&amp;#39;&lt;/span&gt;}}}&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
I think this has something to do with different instances of the class perhaps, but I can't figure out how to just use the same class instance for each additional piece of the dictionary.</description>
      <author>Maverick494</author>
      <link>https://www.codeproject.com/Messages/5959097/Updating-a-Dictionary-in-python-iteratively</link>
      <pubDate>Sat, 26 Aug 2023 22:39:00 GMT</pubDate>
      <guid>3_5959097</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>Which technique to apply if function Y changes with values of X variables other than linear regression</title>
      <description>&lt;div class='pre-lang' id='premain506685'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode506685' class='copy-code' data-index='506685' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre506685' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
I have data &lt;span class="code-keyword"&gt;in&lt;/span&gt; two columns, X and Y &lt;span class="code-sdkkeyword"&gt;where&lt;/span&gt; the function Y changes &lt;span class="code-keyword"&gt;for&lt;/span&gt; increasing values of the X variable. If Y shows variations with X, the simplest way to &lt;span class="code-keyword"&gt;do&lt;/span&gt; &lt;span class="code-keyword"&gt;this&lt;/span&gt; &lt;span class="code-keyword"&gt;is&lt;/span&gt; by fitting the data with a linear function.(In python), but I am looking &lt;span class="code-keyword"&gt;for&lt;/span&gt; some &lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;advanced"&lt;/span&gt; strategy (other than linear regression, i.e., &lt;span class="code-keyword"&gt;using&lt;/span&gt; Neural Networks or other machine learning techniques) to elaborate on these data because i also want to find pattern &lt;span class="code-keyword"&gt;in&lt;/span&gt; it. Need guidance .&lt;/pre&gt;</description>
      <author>Member 10639636</author>
      <link>https://www.codeproject.com/Messages/5955693/Which-technique-to-apply-if-function-Y-changes-wit</link>
      <pubDate>Mon, 07 Aug 2023 22:42:00 GMT</pubDate>
      <guid>3_5955693</guid>
      <subject>Python</subject>
    </item>
    <item>
      <title>File memory usage issues</title>
      <description>&lt;div class='pre-lang' id='premain872483'&gt;&lt;div&gt;&lt;/div&gt;&lt;div class='pre-action-link'&gt;&lt;span id='copycode872483' class='copy-code' data-index='872483' style='visibility:hidden'&gt;&lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 460 460' style='width: 16px;height:16px;' xml:space='preserve'&gt;&lt;g&gt;&lt;path d='M425.934,0H171.662c-18.122,0-32.864,14.743-32.864,32.864v77.134h30V32.864c0-1.579,1.285-2.864,2.864-2.864h254.272     c1.579,0,2.864,1.285,2.864,2.864v254.272c0,1.58-1.285,2.865-2.864,2.865h-74.729v30h74.729 c18.121,0,32.864-14.743,32.864-32.865V32.864C458.797,14.743,444.055,0,425.934,0z'&gt;&lt;/path&gt;&lt;path d='M288.339,139.998H34.068c-18.122,0-32.865,14.743-32.865,32.865v254.272C1.204,445.257,15.946,460,34.068,460h254.272 c18.122,0,32.865-14.743,32.865-32.864V172.863C321.206,154.741,306.461,139.998,288.339,139.998z M288.341,430H34.068    c-1.58,0-2.865-1.285-2.865-2.864V172.863c0-1.58,1.285-2.865,2.865-2.865h254.272c1.58,0,2.865,1.285,2.865,2.865v254.273h0.001 C291.206,428.715,289.92,430,288.341,430z'&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;pre id='pre872483' style='margin-top:0;' data-allowShrink='True' data-collapse='False'&gt;
What would you like to share?
Hello, I would like to ask a question, the size of the space occupied by python before executing file = f.read() &lt;span class="code-keyword"&gt;is&lt;/span&gt; 84M， The size of the space occupied by python after execution &lt;span class="code-keyword"&gt;is&lt;/span&gt; 2689MB, and the size of the file only &lt;span class="code-keyword"&gt;is&lt;/span&gt; &lt;span class="code-digit"&gt;1&lt;/span&gt;.27GB, why does it take up so much more space than the file size&lt;/pre&gt;</description>
      <author>DevilDuck123</author>
      <link>https://www.codeproject.com/Messages/5951126/File-memory-usage-issues</link>
      <pubDate>Fri, 07 Jul 2023 06:26:00 GMT</pubDate>
      <guid>3_5951126</guid>
      <subject>Python</subject>
    </item>
  </channel>
</rss>