tabsight 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. tabsight/__init__.py +89 -0
  2. tabsight/__main__.py +3 -0
  3. tabsight/_version.py +1 -0
  4. tabsight/accessor.py +114 -0
  5. tabsight/aggregate.py +759 -0
  6. tabsight/analytics.py +275 -0
  7. tabsight/auto.py +249 -0
  8. tabsight/charts/__init__.py +737 -0
  9. tabsight/charts/_build.py +359 -0
  10. tabsight/charts/_common.py +124 -0
  11. tabsight/charts/extra.py +236 -0
  12. tabsight/charts/facets.py +369 -0
  13. tabsight/charts/grids.py +202 -0
  14. tabsight/charts/maps.py +669 -0
  15. tabsight/charts/pane.py +336 -0
  16. tabsight/charts/parts.py +319 -0
  17. tabsight/charts/relation.py +530 -0
  18. tabsight/check.py +318 -0
  19. tabsight/clean.py +409 -0
  20. tabsight/cli.py +295 -0
  21. tabsight/colors.py +155 -0
  22. tabsight/dashboard.py +1436 -0
  23. tabsight/figure.py +241 -0
  24. tabsight/formats.py +487 -0
  25. tabsight/formulas.py +754 -0
  26. tabsight/geo/__init__.py +109 -0
  27. tabsight/geo/data/__init__.py +1 -0
  28. tabsight/geo/data/admin1/ABW.topo.json.gz +0 -0
  29. tabsight/geo/data/admin1/AFG.topo.json.gz +0 -0
  30. tabsight/geo/data/admin1/AGO.topo.json.gz +0 -0
  31. tabsight/geo/data/admin1/AIA.topo.json.gz +0 -0
  32. tabsight/geo/data/admin1/ALB.topo.json.gz +0 -0
  33. tabsight/geo/data/admin1/ALD.topo.json.gz +0 -0
  34. tabsight/geo/data/admin1/AND.topo.json.gz +0 -0
  35. tabsight/geo/data/admin1/ARE.topo.json.gz +0 -0
  36. tabsight/geo/data/admin1/ARG.topo.json.gz +0 -0
  37. tabsight/geo/data/admin1/ARM.topo.json.gz +0 -0
  38. tabsight/geo/data/admin1/ASM.topo.json.gz +0 -0
  39. tabsight/geo/data/admin1/ATA.topo.json.gz +0 -0
  40. tabsight/geo/data/admin1/ATC.topo.json.gz +0 -0
  41. tabsight/geo/data/admin1/ATF.topo.json.gz +0 -0
  42. tabsight/geo/data/admin1/ATG.topo.json.gz +0 -0
  43. tabsight/geo/data/admin1/AUS.topo.json.gz +0 -0
  44. tabsight/geo/data/admin1/AUT.topo.json.gz +0 -0
  45. tabsight/geo/data/admin1/AZE.topo.json.gz +0 -0
  46. tabsight/geo/data/admin1/BDI.topo.json.gz +0 -0
  47. tabsight/geo/data/admin1/BEL.topo.json.gz +0 -0
  48. tabsight/geo/data/admin1/BEN.topo.json.gz +0 -0
  49. tabsight/geo/data/admin1/BFA.topo.json.gz +0 -0
  50. tabsight/geo/data/admin1/BGD.topo.json.gz +0 -0
  51. tabsight/geo/data/admin1/BGR.topo.json.gz +0 -0
  52. tabsight/geo/data/admin1/BHR.topo.json.gz +0 -0
  53. tabsight/geo/data/admin1/BHS.topo.json.gz +0 -0
  54. tabsight/geo/data/admin1/BIH.topo.json.gz +0 -0
  55. tabsight/geo/data/admin1/BLM.topo.json.gz +0 -0
  56. tabsight/geo/data/admin1/BLR.topo.json.gz +0 -0
  57. tabsight/geo/data/admin1/BLZ.topo.json.gz +0 -0
  58. tabsight/geo/data/admin1/BMU.topo.json.gz +0 -0
  59. tabsight/geo/data/admin1/BOL.topo.json.gz +0 -0
  60. tabsight/geo/data/admin1/BRA.topo.json.gz +0 -0
  61. tabsight/geo/data/admin1/BRB.topo.json.gz +0 -0
  62. tabsight/geo/data/admin1/BRN.topo.json.gz +0 -0
  63. tabsight/geo/data/admin1/BTN.topo.json.gz +0 -0
  64. tabsight/geo/data/admin1/BWA.topo.json.gz +0 -0
  65. tabsight/geo/data/admin1/CAF.topo.json.gz +0 -0
  66. tabsight/geo/data/admin1/CAN.topo.json.gz +0 -0
  67. tabsight/geo/data/admin1/CHE.topo.json.gz +0 -0
  68. tabsight/geo/data/admin1/CHL.topo.json.gz +0 -0
  69. tabsight/geo/data/admin1/CHN.topo.json.gz +0 -0
  70. tabsight/geo/data/admin1/CIV.topo.json.gz +0 -0
  71. tabsight/geo/data/admin1/CLP.topo.json.gz +0 -0
  72. tabsight/geo/data/admin1/CMR.topo.json.gz +0 -0
  73. tabsight/geo/data/admin1/COD.topo.json.gz +0 -0
  74. tabsight/geo/data/admin1/COG.topo.json.gz +0 -0
  75. tabsight/geo/data/admin1/COK.topo.json.gz +0 -0
  76. tabsight/geo/data/admin1/COL.topo.json.gz +0 -0
  77. tabsight/geo/data/admin1/COM.topo.json.gz +0 -0
  78. tabsight/geo/data/admin1/CPV.topo.json.gz +0 -0
  79. tabsight/geo/data/admin1/CRI.topo.json.gz +0 -0
  80. tabsight/geo/data/admin1/CSI.topo.json.gz +0 -0
  81. tabsight/geo/data/admin1/CUB.topo.json.gz +0 -0
  82. tabsight/geo/data/admin1/CUW.topo.json.gz +0 -0
  83. tabsight/geo/data/admin1/CYM.topo.json.gz +0 -0
  84. tabsight/geo/data/admin1/CYN.topo.json.gz +0 -0
  85. tabsight/geo/data/admin1/CYP.topo.json.gz +0 -0
  86. tabsight/geo/data/admin1/CZE.topo.json.gz +0 -0
  87. tabsight/geo/data/admin1/DEU.topo.json.gz +0 -0
  88. tabsight/geo/data/admin1/DJI.topo.json.gz +0 -0
  89. tabsight/geo/data/admin1/DMA.topo.json.gz +0 -0
  90. tabsight/geo/data/admin1/DNK.topo.json.gz +0 -0
  91. tabsight/geo/data/admin1/DOM.topo.json.gz +0 -0
  92. tabsight/geo/data/admin1/DZA.topo.json.gz +0 -0
  93. tabsight/geo/data/admin1/ECU.topo.json.gz +0 -0
  94. tabsight/geo/data/admin1/EGY.topo.json.gz +0 -0
  95. tabsight/geo/data/admin1/ERI.topo.json.gz +0 -0
  96. tabsight/geo/data/admin1/ESB.topo.json.gz +0 -0
  97. tabsight/geo/data/admin1/ESP.topo.json.gz +0 -0
  98. tabsight/geo/data/admin1/EST.topo.json.gz +0 -0
  99. tabsight/geo/data/admin1/ETH.topo.json.gz +0 -0
  100. tabsight/geo/data/admin1/FIN.topo.json.gz +0 -0
  101. tabsight/geo/data/admin1/FJI.topo.json.gz +0 -0
  102. tabsight/geo/data/admin1/FLK.topo.json.gz +0 -0
  103. tabsight/geo/data/admin1/FRA.topo.json.gz +0 -0
  104. tabsight/geo/data/admin1/FRO.topo.json.gz +0 -0
  105. tabsight/geo/data/admin1/FSM.topo.json.gz +0 -0
  106. tabsight/geo/data/admin1/GAB.topo.json.gz +0 -0
  107. tabsight/geo/data/admin1/GBR.topo.json.gz +0 -0
  108. tabsight/geo/data/admin1/GEO.topo.json.gz +0 -0
  109. tabsight/geo/data/admin1/GGY.topo.json.gz +0 -0
  110. tabsight/geo/data/admin1/GHA.topo.json.gz +0 -0
  111. tabsight/geo/data/admin1/GIB.topo.json.gz +0 -0
  112. tabsight/geo/data/admin1/GIN.topo.json.gz +0 -0
  113. tabsight/geo/data/admin1/GMB.topo.json.gz +0 -0
  114. tabsight/geo/data/admin1/GNB.topo.json.gz +0 -0
  115. tabsight/geo/data/admin1/GNQ.topo.json.gz +0 -0
  116. tabsight/geo/data/admin1/GRC.topo.json.gz +0 -0
  117. tabsight/geo/data/admin1/GRD.topo.json.gz +0 -0
  118. tabsight/geo/data/admin1/GRL.topo.json.gz +0 -0
  119. tabsight/geo/data/admin1/GTM.topo.json.gz +0 -0
  120. tabsight/geo/data/admin1/GUM.topo.json.gz +0 -0
  121. tabsight/geo/data/admin1/GUY.topo.json.gz +0 -0
  122. tabsight/geo/data/admin1/HKG.topo.json.gz +0 -0
  123. tabsight/geo/data/admin1/HMD.topo.json.gz +0 -0
  124. tabsight/geo/data/admin1/HND.topo.json.gz +0 -0
  125. tabsight/geo/data/admin1/HRV.topo.json.gz +0 -0
  126. tabsight/geo/data/admin1/HTI.topo.json.gz +0 -0
  127. tabsight/geo/data/admin1/HUN.topo.json.gz +0 -0
  128. tabsight/geo/data/admin1/IDN.topo.json.gz +0 -0
  129. tabsight/geo/data/admin1/IMN.topo.json.gz +0 -0
  130. tabsight/geo/data/admin1/IND.topo.json.gz +0 -0
  131. tabsight/geo/data/admin1/IOA.topo.json.gz +0 -0
  132. tabsight/geo/data/admin1/IOT.topo.json.gz +0 -0
  133. tabsight/geo/data/admin1/IRL.topo.json.gz +0 -0
  134. tabsight/geo/data/admin1/IRN.topo.json.gz +0 -0
  135. tabsight/geo/data/admin1/IRQ.topo.json.gz +0 -0
  136. tabsight/geo/data/admin1/ISL.topo.json.gz +0 -0
  137. tabsight/geo/data/admin1/ISR.topo.json.gz +0 -0
  138. tabsight/geo/data/admin1/ITA.topo.json.gz +0 -0
  139. tabsight/geo/data/admin1/JAM.topo.json.gz +0 -0
  140. tabsight/geo/data/admin1/JEY.topo.json.gz +0 -0
  141. tabsight/geo/data/admin1/JOR.topo.json.gz +0 -0
  142. tabsight/geo/data/admin1/JPN.topo.json.gz +0 -0
  143. tabsight/geo/data/admin1/KAB.topo.json.gz +0 -0
  144. tabsight/geo/data/admin1/KAS.topo.json.gz +0 -0
  145. tabsight/geo/data/admin1/KAZ.topo.json.gz +0 -0
  146. tabsight/geo/data/admin1/KEN.topo.json.gz +0 -0
  147. tabsight/geo/data/admin1/KGZ.topo.json.gz +0 -0
  148. tabsight/geo/data/admin1/KHM.topo.json.gz +0 -0
  149. tabsight/geo/data/admin1/KIR.topo.json.gz +0 -0
  150. tabsight/geo/data/admin1/KNA.topo.json.gz +0 -0
  151. tabsight/geo/data/admin1/KOR.topo.json.gz +0 -0
  152. tabsight/geo/data/admin1/KOS.topo.json.gz +0 -0
  153. tabsight/geo/data/admin1/KWT.topo.json.gz +0 -0
  154. tabsight/geo/data/admin1/LAO.topo.json.gz +0 -0
  155. tabsight/geo/data/admin1/LBN.topo.json.gz +0 -0
  156. tabsight/geo/data/admin1/LBR.topo.json.gz +0 -0
  157. tabsight/geo/data/admin1/LBY.topo.json.gz +0 -0
  158. tabsight/geo/data/admin1/LCA.topo.json.gz +0 -0
  159. tabsight/geo/data/admin1/LIE.topo.json.gz +0 -0
  160. tabsight/geo/data/admin1/LKA.topo.json.gz +0 -0
  161. tabsight/geo/data/admin1/LSO.topo.json.gz +0 -0
  162. tabsight/geo/data/admin1/LTU.topo.json.gz +0 -0
  163. tabsight/geo/data/admin1/LUX.topo.json.gz +0 -0
  164. tabsight/geo/data/admin1/LVA.topo.json.gz +0 -0
  165. tabsight/geo/data/admin1/MAC.topo.json.gz +0 -0
  166. tabsight/geo/data/admin1/MAF.topo.json.gz +0 -0
  167. tabsight/geo/data/admin1/MAR.topo.json.gz +0 -0
  168. tabsight/geo/data/admin1/MCO.topo.json.gz +0 -0
  169. tabsight/geo/data/admin1/MDA.topo.json.gz +0 -0
  170. tabsight/geo/data/admin1/MDG.topo.json.gz +0 -0
  171. tabsight/geo/data/admin1/MDV.topo.json.gz +0 -0
  172. tabsight/geo/data/admin1/MEX.topo.json.gz +0 -0
  173. tabsight/geo/data/admin1/MHL.topo.json.gz +0 -0
  174. tabsight/geo/data/admin1/MKD.topo.json.gz +0 -0
  175. tabsight/geo/data/admin1/MLI.topo.json.gz +0 -0
  176. tabsight/geo/data/admin1/MLT.topo.json.gz +0 -0
  177. tabsight/geo/data/admin1/MMR.topo.json.gz +0 -0
  178. tabsight/geo/data/admin1/MNE.topo.json.gz +0 -0
  179. tabsight/geo/data/admin1/MNG.topo.json.gz +0 -0
  180. tabsight/geo/data/admin1/MNP.topo.json.gz +0 -0
  181. tabsight/geo/data/admin1/MOZ.topo.json.gz +0 -0
  182. tabsight/geo/data/admin1/MRT.topo.json.gz +0 -0
  183. tabsight/geo/data/admin1/MSR.topo.json.gz +0 -0
  184. tabsight/geo/data/admin1/MUS.topo.json.gz +0 -0
  185. tabsight/geo/data/admin1/MWI.topo.json.gz +0 -0
  186. tabsight/geo/data/admin1/MYS.topo.json.gz +0 -0
  187. tabsight/geo/data/admin1/NAM.topo.json.gz +0 -0
  188. tabsight/geo/data/admin1/NCL.topo.json.gz +0 -0
  189. tabsight/geo/data/admin1/NER.topo.json.gz +0 -0
  190. tabsight/geo/data/admin1/NFK.topo.json.gz +0 -0
  191. tabsight/geo/data/admin1/NGA.topo.json.gz +0 -0
  192. tabsight/geo/data/admin1/NIC.topo.json.gz +0 -0
  193. tabsight/geo/data/admin1/NIU.topo.json.gz +0 -0
  194. tabsight/geo/data/admin1/NLD.topo.json.gz +0 -0
  195. tabsight/geo/data/admin1/NOR.topo.json.gz +0 -0
  196. tabsight/geo/data/admin1/NPL.topo.json.gz +0 -0
  197. tabsight/geo/data/admin1/NRU.topo.json.gz +0 -0
  198. tabsight/geo/data/admin1/NZL.topo.json.gz +0 -0
  199. tabsight/geo/data/admin1/OMN.topo.json.gz +0 -0
  200. tabsight/geo/data/admin1/PAK.topo.json.gz +0 -0
  201. tabsight/geo/data/admin1/PAN.topo.json.gz +0 -0
  202. tabsight/geo/data/admin1/PCN.topo.json.gz +0 -0
  203. tabsight/geo/data/admin1/PER.topo.json.gz +0 -0
  204. tabsight/geo/data/admin1/PGA.topo.json.gz +0 -0
  205. tabsight/geo/data/admin1/PHL.topo.json.gz +0 -0
  206. tabsight/geo/data/admin1/PLW.topo.json.gz +0 -0
  207. tabsight/geo/data/admin1/PNG.topo.json.gz +0 -0
  208. tabsight/geo/data/admin1/POL.topo.json.gz +0 -0
  209. tabsight/geo/data/admin1/PRI.topo.json.gz +0 -0
  210. tabsight/geo/data/admin1/PRK.topo.json.gz +0 -0
  211. tabsight/geo/data/admin1/PRT.topo.json.gz +0 -0
  212. tabsight/geo/data/admin1/PRY.topo.json.gz +0 -0
  213. tabsight/geo/data/admin1/PSX.topo.json.gz +0 -0
  214. tabsight/geo/data/admin1/PYF.topo.json.gz +0 -0
  215. tabsight/geo/data/admin1/QAT.topo.json.gz +0 -0
  216. tabsight/geo/data/admin1/ROU.topo.json.gz +0 -0
  217. tabsight/geo/data/admin1/RUS.topo.json.gz +0 -0
  218. tabsight/geo/data/admin1/RWA.topo.json.gz +0 -0
  219. tabsight/geo/data/admin1/SAH.topo.json.gz +0 -0
  220. tabsight/geo/data/admin1/SAU.topo.json.gz +0 -0
  221. tabsight/geo/data/admin1/SDN.topo.json.gz +0 -0
  222. tabsight/geo/data/admin1/SDS.topo.json.gz +0 -0
  223. tabsight/geo/data/admin1/SEN.topo.json.gz +0 -0
  224. tabsight/geo/data/admin1/SGP.topo.json.gz +0 -0
  225. tabsight/geo/data/admin1/SGS.topo.json.gz +0 -0
  226. tabsight/geo/data/admin1/SHN.topo.json.gz +0 -0
  227. tabsight/geo/data/admin1/SLB.topo.json.gz +0 -0
  228. tabsight/geo/data/admin1/SLE.topo.json.gz +0 -0
  229. tabsight/geo/data/admin1/SLV.topo.json.gz +0 -0
  230. tabsight/geo/data/admin1/SMR.topo.json.gz +0 -0
  231. tabsight/geo/data/admin1/SOL.topo.json.gz +0 -0
  232. tabsight/geo/data/admin1/SOM.topo.json.gz +0 -0
  233. tabsight/geo/data/admin1/SPM.topo.json.gz +0 -0
  234. tabsight/geo/data/admin1/SRB.topo.json.gz +0 -0
  235. tabsight/geo/data/admin1/STP.topo.json.gz +0 -0
  236. tabsight/geo/data/admin1/SUR.topo.json.gz +0 -0
  237. tabsight/geo/data/admin1/SVK.topo.json.gz +0 -0
  238. tabsight/geo/data/admin1/SVN.topo.json.gz +0 -0
  239. tabsight/geo/data/admin1/SWE.topo.json.gz +0 -0
  240. tabsight/geo/data/admin1/SWZ.topo.json.gz +0 -0
  241. tabsight/geo/data/admin1/SXM.topo.json.gz +0 -0
  242. tabsight/geo/data/admin1/SYC.topo.json.gz +0 -0
  243. tabsight/geo/data/admin1/SYR.topo.json.gz +0 -0
  244. tabsight/geo/data/admin1/TCA.topo.json.gz +0 -0
  245. tabsight/geo/data/admin1/TCD.topo.json.gz +0 -0
  246. tabsight/geo/data/admin1/TGO.topo.json.gz +0 -0
  247. tabsight/geo/data/admin1/THA.topo.json.gz +0 -0
  248. tabsight/geo/data/admin1/TJK.topo.json.gz +0 -0
  249. tabsight/geo/data/admin1/TKM.topo.json.gz +0 -0
  250. tabsight/geo/data/admin1/TLS.topo.json.gz +0 -0
  251. tabsight/geo/data/admin1/TON.topo.json.gz +0 -0
  252. tabsight/geo/data/admin1/TTO.topo.json.gz +0 -0
  253. tabsight/geo/data/admin1/TUN.topo.json.gz +0 -0
  254. tabsight/geo/data/admin1/TUR.topo.json.gz +0 -0
  255. tabsight/geo/data/admin1/TUV.topo.json.gz +0 -0
  256. tabsight/geo/data/admin1/TWN.topo.json.gz +0 -0
  257. tabsight/geo/data/admin1/TZA.topo.json.gz +0 -0
  258. tabsight/geo/data/admin1/UGA.topo.json.gz +0 -0
  259. tabsight/geo/data/admin1/UKR.topo.json.gz +0 -0
  260. tabsight/geo/data/admin1/UMI.topo.json.gz +0 -0
  261. tabsight/geo/data/admin1/URY.topo.json.gz +0 -0
  262. tabsight/geo/data/admin1/USA.topo.json.gz +0 -0
  263. tabsight/geo/data/admin1/USG.topo.json.gz +0 -0
  264. tabsight/geo/data/admin1/UZB.topo.json.gz +0 -0
  265. tabsight/geo/data/admin1/VAT.topo.json.gz +0 -0
  266. tabsight/geo/data/admin1/VCT.topo.json.gz +0 -0
  267. tabsight/geo/data/admin1/VEN.topo.json.gz +0 -0
  268. tabsight/geo/data/admin1/VGB.topo.json.gz +0 -0
  269. tabsight/geo/data/admin1/VIR.topo.json.gz +0 -0
  270. tabsight/geo/data/admin1/VNM.topo.json.gz +0 -0
  271. tabsight/geo/data/admin1/VUT.topo.json.gz +0 -0
  272. tabsight/geo/data/admin1/WLF.topo.json.gz +0 -0
  273. tabsight/geo/data/admin1/WSB.topo.json.gz +0 -0
  274. tabsight/geo/data/admin1/WSM.topo.json.gz +0 -0
  275. tabsight/geo/data/admin1/YEM.topo.json.gz +0 -0
  276. tabsight/geo/data/admin1/ZAF.topo.json.gz +0 -0
  277. tabsight/geo/data/admin1/ZMB.topo.json.gz +0 -0
  278. tabsight/geo/data/admin1/ZWE.topo.json.gz +0 -0
  279. tabsight/geo/data/cities.json.gz +0 -0
  280. tabsight/geo/data/names.json.gz +0 -0
  281. tabsight/geo/data/version.json +6 -0
  282. tabsight/geo/data/world.topo.json.gz +0 -0
  283. tabsight/geo/detection.py +505 -0
  284. tabsight/geo/names.py +198 -0
  285. tabsight/i18n/__init__.py +55 -0
  286. tabsight/i18n/de.json +50 -0
  287. tabsight/i18n/en.json +90 -0
  288. tabsight/i18n/es.json +50 -0
  289. tabsight/i18n/fr.json +50 -0
  290. tabsight/i18n/it.json +50 -0
  291. tabsight/i18n/nl.json +50 -0
  292. tabsight/i18n/pt.json +50 -0
  293. tabsight/insight.py +490 -0
  294. tabsight/io.py +279 -0
  295. tabsight/lint.py +243 -0
  296. tabsight/localserver.py +113 -0
  297. tabsight/periods.py +237 -0
  298. tabsight/plotting.py +173 -0
  299. tabsight/profile.py +743 -0
  300. tabsight/py.typed +0 -0
  301. tabsight/read.py +271 -0
  302. tabsight/recommend.py +595 -0
  303. tabsight/render/__init__.py +1 -0
  304. tabsight/render/assets.py +24 -0
  305. tabsight/render/dashboard_html.py +164 -0
  306. tabsight/render/html.py +160 -0
  307. tabsight/render/picture.py +235 -0
  308. tabsight/render/static/__init__.py +0 -0
  309. tabsight/render/static/dashboard.js +2914 -0
  310. tabsight/render/static/echarts.min.js +45 -0
  311. tabsight/render/static/tabsight.js +588 -0
  312. tabsight/render/static/topojson-client.min.js +2 -0
  313. tabsight/server.py +272 -0
  314. tabsight/settings.py +195 -0
  315. tabsight/spec.py +350 -0
  316. tabsight/tablecalc.py +122 -0
  317. tabsight/theme.py +120 -0
  318. tabsight/warnings.py +113 -0
  319. tabsight/web.py +183 -0
  320. tabsight-0.1.0.dist-info/METADATA +384 -0
  321. tabsight-0.1.0.dist-info/RECORD +328 -0
  322. tabsight-0.1.0.dist-info/WHEEL +4 -0
  323. tabsight-0.1.0.dist-info/entry_points.txt +5 -0
  324. tabsight-0.1.0.dist-info/licenses/LICENSE +21 -0
  325. tabsight-0.1.0.dist-info/licenses/NOTICE +28 -0
  326. tabsight-0.1.0.dist-info/licenses/licenses/echarts-LICENSE.txt +222 -0
  327. tabsight-0.1.0.dist-info/licenses/licenses/echarts-NOTICE.txt +5 -0
  328. tabsight-0.1.0.dist-info/licenses/licenses/topojson-client-LICENSE.txt +13 -0
tabsight/__init__.py ADDED
@@ -0,0 +1,89 @@
1
+ """tabsight: BI-quality charts, world maps and dashboards from a pandas DataFrame.
2
+
3
+ One offline HTML file. Docs: https://yesh069.github.io/tabsight/
4
+ """
5
+
6
+ from tabsight import analytics, geo, warnings, web
7
+ from tabsight._version import __version__
8
+ from tabsight.accessor import register as _register_accessors
9
+ from tabsight.aggregate import Aggregation, Measure, aggregate, bucket
10
+ from tabsight.auto import auto
11
+ from tabsight.charts import chart
12
+ from tabsight.check import CheckReport, check
13
+ from tabsight.clean import CleanReport, clean
14
+ from tabsight.colors import ColorRegistry
15
+ from tabsight.dashboard import Dashboard
16
+ from tabsight.figure import Figure
17
+ from tabsight.formats import format_date, format_number
18
+ from tabsight.formulas import CalcField, calc
19
+ from tabsight.insight import Insight, Insights, insights
20
+ from tabsight.io import load
21
+ from tabsight.lint import LintIssue, LintReport
22
+ from tabsight.periods import Comparison, compare
23
+ from tabsight.plotting import plot # also lets pandas find the backend without the entry point
24
+ from tabsight.profile import Field, Profile, profile
25
+ from tabsight.recommend import Recommendation, Recommendations, recommend
26
+ from tabsight.render.assets import ECHARTS_VERSION, TOPOJSON_CLIENT_VERSION, runtime_js
27
+ from tabsight.server import DashboardServer
28
+ from tabsight.settings import Settings, config, current, set_defaults
29
+ from tabsight.spec import CHART_KINDS, ChartSpec
30
+ from tabsight.tablecalc import table_calc
31
+ from tabsight.theme import Theme, custom_theme
32
+ from tabsight.web import serve_payload, streamlit
33
+
34
+ __all__ = [
35
+ "CHART_KINDS",
36
+ "ECHARTS_VERSION",
37
+ "TOPOJSON_CLIENT_VERSION",
38
+ "Aggregation",
39
+ "CalcField",
40
+ "ChartSpec",
41
+ "CheckReport",
42
+ "CleanReport",
43
+ "ColorRegistry",
44
+ "Comparison",
45
+ "Dashboard",
46
+ "DashboardServer",
47
+ "Field",
48
+ "Figure",
49
+ "Insight",
50
+ "Insights",
51
+ "LintIssue",
52
+ "LintReport",
53
+ "Measure",
54
+ "Profile",
55
+ "Recommendation",
56
+ "Recommendations",
57
+ "Settings",
58
+ "Theme",
59
+ "__version__",
60
+ "aggregate",
61
+ "analytics",
62
+ "auto",
63
+ "bucket",
64
+ "calc",
65
+ "chart",
66
+ "check",
67
+ "clean",
68
+ "compare",
69
+ "config",
70
+ "current",
71
+ "custom_theme",
72
+ "format_date",
73
+ "format_number",
74
+ "geo",
75
+ "insights",
76
+ "load",
77
+ "plot",
78
+ "profile",
79
+ "recommend",
80
+ "runtime_js",
81
+ "serve_payload",
82
+ "set_defaults",
83
+ "streamlit",
84
+ "table_calc",
85
+ "warnings",
86
+ "web",
87
+ ]
88
+
89
+ _register_accessors() # df.ts and series.ts
tabsight/__main__.py ADDED
@@ -0,0 +1,3 @@
1
+ from tabsight.cli import main
2
+
3
+ raise SystemExit(main())
tabsight/_version.py ADDED
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
tabsight/accessor.py ADDED
@@ -0,0 +1,114 @@
1
+ """``df.ts`` and ``series.ts``: tabsight from any DataFrame, without changing pandas settings.
2
+
3
+ df.ts.bar(x="Region", y="Sales")
4
+ df.ts.chart("auto", x="Order_Date", y="Sales")
5
+ df.ts.recommend(x="Sub_Category", y="Discount")
6
+ df["Sales"].ts.hist()
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import warnings
12
+ from typing import Any
13
+
14
+ import pandas as pd
15
+
16
+ from tabsight.figure import Figure
17
+
18
+ __all__ = ["DataFrameAccessor", "SeriesAccessor"]
19
+
20
+ # one method per chart kind (the alias "map" too)
21
+ _KINDS = (
22
+ "bar", "hbar", "grouped_bar", "stacked_bar", "stacked100_bar", "lollipop", "bullet", "line", "multi_line",
23
+ "area", "stacked_area", "combo", "sparkline", "calendar_heatmap", "donut", "treemap", "sunburst",
24
+ "waterfall", "funnel", "pareto", "kpi", "gauge", "table", "scatter", "bubble", "heatmap", "histogram",
25
+ "boxplot", "sankey", "map", "choropleth", "symbol_map", "density_map", "flow_map",
26
+ ) # fmt: skip
27
+
28
+
29
+ class DataFrameAccessor:
30
+ """tabsight on a DataFrame: ``df.ts.chart(...)``, ``df.ts.bar(...)``, ``df.ts.profile()``..."""
31
+
32
+ def __init__(self, frame: pd.DataFrame) -> None:
33
+ self._frame = frame
34
+
35
+ def chart(self, kind: str = "auto", **kwargs: Any) -> Figure:
36
+ """``ts.chart(df, kind, ...)``; the default kind is "auto"."""
37
+ from tabsight.charts import chart
38
+
39
+ return chart(self._frame, kind, **kwargs)
40
+
41
+ def recommend(self, **kwargs: Any) -> Any:
42
+ from tabsight.recommend import recommend
43
+
44
+ return recommend(self._frame, **kwargs)
45
+
46
+ def profile(self, **kwargs: Any) -> Any:
47
+ from tabsight.profile import profile
48
+
49
+ return profile(self._frame, **kwargs)
50
+
51
+ def check(self, **kwargs: Any) -> Any:
52
+ from tabsight.check import check
53
+
54
+ return check(self._frame, **kwargs)
55
+
56
+ def aggregate(self, dims: Any = None, measures: Any = None, **kwargs: Any) -> Any:
57
+ from tabsight.aggregate import aggregate
58
+
59
+ return aggregate(self._frame, dims, measures, **kwargs)
60
+
61
+
62
+ class SeriesAccessor:
63
+ """tabsight on one column: ``s.ts.hist()``, ``s.ts.line()`` (over the index), ``s.ts.bar()``..."""
64
+
65
+ def __init__(self, series: pd.Series) -> None:
66
+ self._series = series
67
+
68
+ def chart(self, kind: str = "line", **kwargs: Any) -> Figure:
69
+ from tabsight.plotting import KINDS, plot
70
+
71
+ pandas_kind = {v[0]: k for k, v in KINDS.items()}.get(kind, kind)
72
+ if pandas_kind in KINDS:
73
+ return plot(self._series, pandas_kind, **kwargs)
74
+ from tabsight.charts import chart
75
+
76
+ name = str(self._series.name) if self._series.name is not None else "Value"
77
+ frame = self._series.to_frame(name).reset_index()
78
+ return chart(frame, kind, x=str(frame.columns[0]), y=name, **kwargs)
79
+
80
+ def line(self, **kwargs: Any) -> Figure:
81
+ return self.chart("line", **kwargs)
82
+
83
+ def bar(self, **kwargs: Any) -> Figure:
84
+ return self.chart("bar", **kwargs)
85
+
86
+ def hist(self, **kwargs: Any) -> Figure:
87
+ return self.chart("histogram", **kwargs)
88
+
89
+ def box(self, **kwargs: Any) -> Figure:
90
+ return self.chart("boxplot", **kwargs)
91
+
92
+ def area(self, **kwargs: Any) -> Figure:
93
+ return self.chart("area", **kwargs)
94
+
95
+
96
+ def _make(kind: str) -> Any:
97
+ def method(self: DataFrameAccessor, **kwargs: Any) -> Figure:
98
+ return self.chart(kind, **kwargs)
99
+
100
+ method.__name__ = kind
101
+ method.__doc__ = f'``ts.chart(df, "{kind}", ...)``'
102
+ return method
103
+
104
+
105
+ for _kind in _KINDS:
106
+ setattr(DataFrameAccessor, _kind, _make(_kind))
107
+
108
+
109
+ def register() -> None:
110
+ """Add ``.ts`` to every DataFrame and Series (done when tabsight is imported)."""
111
+ with warnings.catch_warnings():
112
+ warnings.simplefilter("ignore", UserWarning) # re-registering on reload is fine
113
+ pd.api.extensions.register_dataframe_accessor("ts")(DataFrameAccessor)
114
+ pd.api.extensions.register_series_accessor("ts")(SeriesAccessor)