summary | Tremendous toolsAbraham Maslow said, "To the man who only has a hammer, everything he encounters begins to look like a nail". Obviously, hammers and IT don't mix, so we have come up with a list of tremendous tools you can use to resist the urge to smash things up. Let's Talk ToolsTools as defined here are any packages, frameworks, websites or pieces of software we think are useful. By using the same tools, we can offer a better level of support and collaboration within the team. The tools we use come in three flavours, tools we have developed in house for ourselves, tools that are provided by a third party and tools that are open sourced where we contribute. We are pretty open to using any tool, framework, gizmo or gadget if it brings a tangible benefit, so this list is not exhaustive or set in stone, especially when it comes to third party tools.We strongly encourage using an approach that results in reusable code. If you are starting a new project or updating old code, it is well worth flicking through this section to see if you can find something that does what you need. On the flip side, if you think the thing you are creating could be useful in other projects, make sure it's written so we can all take advantage. Any tool below marked with ⭐ should be considered our standard practise. If you aren't using the approach as described, you should have a good reason. We will have given time and consideration to these tools, but we are happy to have a conversation if you have a better idea. Our Tools Connection Manager ⭐This tool uses credentials stored in KeePass to connect to our database using python and handles the creation of the SSH connection if required. Before you can use this tool though, you will need to use the rr-key-manager tools to create your KeePass database and add the appropriate credentials. Whoa dude, a tool within a tool, cool.‼️Some repos are still using the first iteration of this idea, which was called ukrdc_database. Take a Look<br> Data Base Models ⭐We have various databases and for the most part we have models that reflect them. The RR Models<br> The UKRDC Models<br> The Radar Models<br> Some Other ToolSome other tools will no doubt go here but I haven't got time to go find them. Don't click the button, you have been warned. 💥 Do not Click me<br> Their Tools Text EditorsBy and large, as a team, we use VS Code. There are some great modules for python devs, including x, y and z.Some of us use PyCharm, and it is rumoured that WordPad++ is a very capable tool in the right hands. Who's hands, I hear you ask. Extra points if you can find out. 😆 Python FrameworksWe use a host of frameworks, some of our favourites are 💎 SQLalchemy 🏃♂️ FastAPI👽 Django🐼 pandas or polars Python Dev ToolsTo make sure our code is up to scratch, we use a selection of tools for all the regular sanity checking stuff Formatting - Black or RuffLinting - Pylint or RuffTesting - PytestType checking - mypyVunrability testing - BanditTest runner - Tox DockerIf building computers inside computers is magic, then docker is your wand. We use this for building development and production environments. Take a Look<br> GitHub ActionsRobots are second in a fight after wizards, and if you agree, you are going to love github actions. You can find out all about this amazing tool and how we use it by clicking the button. Take a Look<br> Community Tools NHS-NumberThis is a package for validating NHS numbers. It deals with all flavours (NHS, CHI, HSC) and is also capable of generating NHS numbers for testing purposes. Take a Look<br> PYXB-X??Something Joel was doing. Need to find some details Take a Look<br> Take a Look<br> |
---|
page | {"name":"page","children":[{"id":"aZRmFOXpD3EomGMVVvfqc","params":{"background":{"light":"#ffffff","dark":"#1d2125"},"padding":20,"gap":10},"children":[{"id":"FKvhWz0r9Hn7JZFMsQ16U","name":"row","children":[{"id":"9f-aFTBWNOcMMeJGDS7oq","name":"column","children":[{"name":"image","params":{"templateId":"full-width","alignment":"center","position":"center center","borderRadius":{"all":0,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att2615771137","target":"_blank","type":"attachment"},"width":370,"height":185},"children":[],"id":"5_Rim65enwZ1eqYmGLtne"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"O1juLYOxV5I_EEOFcEVuG","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"hmAabHUrdxFd08opVToQS","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"QX1KboA0oU5GkfkHK_i9Q","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"8AgmqvDifaQ9hs3s3b_zV","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"MfBG3kNo1Ys8XMqZKWB2L","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":10,"minHeight":100,"padding":10,"borderRadius":0}},{"id":"MWC4BH0FWQDxjmd1irbMK","name":"row","children":[{"id":"3dC8m0ZwcI9V6esgXI9i9","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Tremendous tools","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}],"align":"center"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Open Sans, sans-serif"}]},{"type":"paragraph","children":[{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"Abraham Maslow said, \"To the man who only has a hammer, everything he encounters begins to look like a nail\". Obviously, hammers and IT don't mix, so we have come up with a list of tremendous tools you can use to resist the urge to smash things up.","fontFamily":"Poppins, sans-serif"}],"align":"center"},{"type":"paragraph","align":"center","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"type":"paragraph","align":"center","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]}]}]}]}]},"children":[],"id":"oYn2fn0g2IxgVoOo1Dd-i"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"o4Uv4bmc6V5DoFDD9ktNE","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"EjqR0d1qGxlRPuVC9A5Sb","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"C-FfFSuNOFuHRGMw7tMrW","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"HdgOfTISxCKK93NA7Yr9y","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"gzneaTFOjaTp9HJFzB0VK","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":10,"minHeight":200,"padding":10,"borderRadius":0}},{"id":"Ba47T0TRdbf6q0LUo8yF3","name":"row","children":[{"id":"tdood_-RZ5ArpYwcmXNaj","name":"column","children":[{"name":"text","params":{"templateId":"simple paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Let's Talk Tools","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Tools as defined here are any packages, frameworks, websites or pieces of software we think are useful. By using the same tools, we can offer a better level of support and collaboration within the team. The tools we use come in three flavours, tools we have developed in house for ourselves, tools that are provided by a third party and tools that are open sourced where we contribute. We are pretty open to using any tool, framework, gizmo or gadget if it brings a tangible benefit, so this list is not exhaustive or set in stone, especially when it comes to third party tools."}]},{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","align":"center","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","align":"left","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"We strongly encourage using an approach that results in reusable code. If you are starting a new project or updating old code, it is well worth flicking through this section to see if you can find something that does what you need. On the flip side, if you think the thing you are creating could be useful in other projects, make sure it's written so we can all take advantage. Any tool below marked with ⭐ should be considered our standard practise. If you aren't using the approach as described, you should have a good reason. We will have given time and consideration to these tools, but we are happy to have a conversation if you have a better idea."}]}]}]}]}]}]},"children":[],"id":"d16zhVOt6TkvskOSJ15nG"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"pH-Xwl4Z-LRbfV1149KAs","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"lJbR-fGAp2tZxknCNMrdJ","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"BKmXYeE70OIkKgR8esWsE","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"yqw8Y8jEDP6YZBbWfGpCe","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"J2k34chDp06N1CJNhQG6j","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}},{"id":"jkQMugMWLNdIwjGr-Bnv5","name":"row","children":[{"id":"RA1ErDF2qfZ7OyL4bi354","name":"column","children":[{"name":"divider","params":{"templateId":"solid long","color":{"light":"#000000","dark":"#ffffff"},"alignment":"start","fontSize":24,"fontColor":{"light":"#000000","dark":"#ffffff"},"height":1,"borderStyle":"solid"},"children":[],"id":"H1g3DR0q42--7w3vhQiFa"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"Nbi0ZKyX1YsFNW_B9pBxe","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"UlGi0Ju4AaYn66AaaDF1T","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"WzJUPgGzrsdJooEyrS-gW","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"OZY-jkkcV4qE32g6dxxSe","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"1LnGGhQRT6zCdC5GP0gTF","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":100,"minHeight":1,"padding":10,"borderRadius":0,"size":"full"}},{"id":"t-gTipArDQVJ24lsiWKJq","name":"row","children":[{"id":"nQmq5k774D7TU5zLiv57D","name":"column","children":[{"name":"text","params":{"templateId":"simple paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Our Tools","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontFamily":"Poppins, sans-serif","fontSize":45}]}]}]}]},"children":[],"id":"geg_iDJx3zOuJHC7Q_BJk"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"udGAuH0TSUxg5d1aMOD7Q","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"jXkR_WBhJha68OJ-IV2vc","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"AnjIpeuz7YPiKZgwsV9FE","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"dKqUgWk6tMuHoC4pZBO42","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"GtpM2lMBgRKOdBhrR0mMz","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":0,"minHeight":1,"padding":0,"borderRadius":0,"size":"full"}},{"id":"5bMkZmLr97RCy2cfhmmrr","name":"row","children":[{"id":"Nt2hxh0syf4IYxMNsGQg5","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Connection Manager ⭐","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"This tool uses credentials stored in KeePass to connect to our database using python and handles the creation of the SSH connection if required. Before you can use this tool though, you will need to use the rr-key-manager tools to create your KeePass database and add the appropriate credentials. Whoa dude, a tool within a tool, cool.","fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"‼️Some repos are still using the first iteration of this idea, which was called ukrdc_database."}]}]}]},"children":[],"id":"bBuo6m5BBPAr54612p23R"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github","target":"_blank","type":"link"}},"children":[],"id":"-3bXy2_xzqDXI8_XsGPqT"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"dJb9rgh4SbA65yfjcUrU7","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Data Base Models ⭐","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"We have various databases and for the most part we have models that reflect them. ","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"eL4S3tdOAbpTNS0Xm_9DG"},{"name":"button","params":{"templateId":"small button","label":"The RR Models<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/conventional_pr_title.yml","target":"_blank","type":"link"},"width":150},"children":[],"id":"Yp8SZz_tAB3zoDd7t4cIl"},{"name":"button","params":{"templateId":"small button","label":"The UKRDC Models<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"width":150},"children":[],"id":"7NaeuUZC9Ogo2xn0aBW59"},{"name":"button","params":{"templateId":"small button","label":"The Radar Models<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"width":150},"children":[],"id":"eUIkqS_3aGkpTtwxhflPH"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"sozjmFwqeTykrHAXUgViK","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Some Other Tool","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"Some other tools will no doubt go here but I haven't got time to go find them. Don't click the button, you have been warned. 💥","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"TD3LX2RxGjK8Jdw52RbVo"},{"name":"button","params":{"templateId":"small button","label":"Do not Click me<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://renalregistry.atlassian.net/wiki/spaces/~876730531/pages/2617442322/Boom","target":"_blank","type":"link"}},"children":[],"id":"aGFaYliiIsEwAEFy7naF2"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"nfxp-09RliOqmnUXGsz5_","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"x-u6uMmGoV_Y84xwTQLnJ","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"0Pl-5EUmq_NAOd5uEomgp","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1,1,1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}},{"id":"vGv2qEBbjCo00GrWwHSdM","name":"row","children":[{"id":"O9-UhUXrmCh06dOhNZqg2","name":"column","children":[{"name":"divider","params":{"templateId":"solid long","color":{"light":"#000000","dark":"#ffffff"},"alignment":"start","fontSize":24,"fontColor":{"light":"#000000","dark":"#ffffff"},"height":1,"borderStyle":"solid"},"children":[],"id":"sEn49ulxOd6l4S58DkJZD"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"5d9zCwjor5hQHsDZpfakC","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"CnW4J1U_k0X34tacY42UK","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"s3wb_D31-BGnWuaoLk0db","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"BeD80uGmeMqYtYE0MWcC3","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"uOswOJFHkYHM5V7ZedMq_","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":100,"minHeight":1,"padding":10,"borderRadius":0,"size":"full"}},{"id":"swcFYz0l7tXVxePMBZzcy","name":"row","children":[{"id":"TqVSDuiPy4Me5vNvFEO7k","name":"column","children":[{"name":"text","params":{"templateId":"simple paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Their Tools","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontFamily":"Poppins, sans-serif","fontSize":45}]}]}]}]},"children":[],"id":"_4eRWoGNjTbvGpuNOLrg1"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"cq1AnyOmgfjugsVtvfddE","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"lkn7L6TLHGObR0K6ltRCd","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"DK17g5vpPdIHYKERTU_nE","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"soQwyNFVh4DtKORG0659T","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"wzTn4sVqMJWjEujaeM95v","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":100,"minHeight":1,"padding":10,"borderRadius":0,"size":"full"}},{"id":"I3v4JQseORUVapBMEqssu","name":"row","children":[{"id":"0EiwOHfKgQbDeo5vYltsB","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Text Editors","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":"By and large, as a team, we use VS Code. There are some great modules for python devs, including x, y and z."}]},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":""}]},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":"Some of us use PyCharm, and it is rumoured that WordPad++ is a very capable tool in the right hands. Who's hands, I hear you ask. Extra points if you can find out. 😆"}]}]}]},"children":[],"id":"OE8jPMjomxDq4rb94qzbA"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"KHVuAyOzFfNWsMYmT-M2a","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Python Frameworks","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"We use a host of frameworks, some of our favourites are "}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"💎 SQLalchemy "}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"🏃♂️ FastAPI"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"👽 Django"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"🐼 pandas or polars"}]}]}]},"children":[],"id":"Tau9nkPa5hmMEynXcgfUx"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"ew96CDUoS4uyrbjofmnaa","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Python Dev Tools","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"To make sure our code is up to scratch, we use a selection of tools for all the regular sanity checking stuff "}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Formatting - Black or Ruff"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Linting - Pylint or Ruff"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Testing - Pytest"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Type checking - mypy"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Vunrability testing - Bandit"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Test runner - Tox"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]}]}]},"children":[],"id":"oBxZsPlwpOLNN9JjrUq-5"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"TQIWb8iG23eXdy1KiRYwX","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"nHt7csltQsOQI99YA3a4q","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"5B8-5SSL1H3ShcZdlq5aG","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1,1,1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}},{"id":"aGY55ECq7DcvQYlwKFDBe","name":"row","children":[{"id":"p42i33PhxADuqRCj8vaRm","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Docker","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"If building computers inside computers is magic, then docker is your wand. We use this for building development and production environments.","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"MHCNB19xyksWaLh_2fb5R"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/tree/main/other-templates","target":"_blank","type":"link"}},"children":[],"id":"WJR3OXq1fZ9CZGapieQYS"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"i3jaOKRLM_fybUNg5YCmA","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"GitHub Actions","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"Robots are second in a fight after wizards, and if you agree, you are going to love github actions. You can find out all about this amazing tool and how we use it by clicking the button.","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"GsP1AZfe6RA7oTynDRpvX"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_test.yml","target":"_blank","type":"link"}},"children":[],"id":"_7Y8V5fdySzrgNeoXbv9A"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"-JNqjv8l1jVaFz3BH_SRO","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"74lRGzyIqCJ1GBDGqoJkc","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"jubGnc2RId-lp3f7ovsFv","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"CPSRKo-RbX4yA4-is36wZ","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1,1,1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}},{"id":"Hs3OZ-wTnt0AbApXlrYpS","name":"row","children":[{"id":"mLLalm5Wj74rSC_nV3Uiv","name":"column","children":[{"name":"divider","params":{"templateId":"solid long","color":{"light":"#000000","dark":"#ffffff"},"alignment":"start","fontSize":24,"fontColor":{"light":"#000000","dark":"#ffffff"},"height":1,"borderStyle":"solid"},"children":[],"id":"oqOdU3JREH49pZc9C-amH"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"19v3wtQAzNSwesKsgUx4i","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"0h6jGVY16mCkjWO-hHyuz","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"0HFaFtAyvGmH9FojWPHWN","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"ycJRnFfKkwLFtELVGsZ6T","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"LPi6YX3rAnGI14qIRTFVo","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":100,"minHeight":1,"padding":10,"borderRadius":0,"size":"full"}},{"id":"FH_M_cmZ56T28xy-M_Bi3","name":"row","children":[{"id":"alnoEuaXjldRvHxdvEJ7_","name":"column","children":[{"name":"text","params":{"templateId":"simple paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Community Tools","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontFamily":"Poppins, sans-serif","fontSize":45}]}]}]}]},"children":[],"id":"ArpLM3WY9UkSPXNQJu1Ud"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"5cy2ILfz8LfJHe3m2gc3l","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"Eh4DvVk-LjQhFllmi8HLY","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"MnGcQY75HOWMxKEcZ7Tvq","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"Q-gphSWlNEs89QrLYW636","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"WlN8AUG3oh_DdJcjMGX4c","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":100,"minHeight":1,"padding":10,"borderRadius":0,"size":"full"}},{"id":"D_TWy5gnBn898EKv6p9-4","name":"row","children":[{"id":"V60mHHErSSy5uHTxg9xip","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"NHS-Number","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":"This is a package for validating NHS numbers. It deals with all flavours (NHS, CHI, HSC) and is also capable of generating NHS numbers for testing purposes."}]}]}]},"children":[],"id":"luRrPMz97sViXh2cAdTd7"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_publish.yml","target":"_blank","type":"link"}},"children":[],"id":"TPcKSvT5zW4H3TfpVVjEO"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"xXASHX5Hdgo-7eqYJqJ1U","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"PYXB-X??","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Something Joel was doing. Need to find some details"}]}]}]},"children":[],"id":"SNhtBbob2NiXYPwGaetNP"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_release.yml","target":"_blank","type":"link"}},"children":[],"id":"rgkL1dNhNtmU9JSgjHhKN"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"VrJK6vnyPKwRaIPEP4KgQ","name":"column","children":[{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_test.yml","target":"_blank","type":"link"}},"children":[],"id":"IGGjsOg4_xEYREHSHEmAd"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"i62iSabKkLhzZuikxbuuu","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"bFZzKNnztwRCA1FahVgOZ","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"Jfej0cFH72BTW8v42ThU6","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1,1,1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}}],"name":"section"}],"id":"30pBDEr2IwtTYTas1VSQo"} |
---|
|