From 2fa4cf0c4833653f999f8a51594ddaf7e19aa6da Mon Sep 17 00:00:00 2001 From: Benjamin Stier Date: Fri, 27 Nov 2020 12:13:32 +0100 Subject: [PATCH 1/4] implement troutcase/spongecase/alternating case --- changecase.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/changecase.py b/changecase.py index 8393e92..ecc9e27 100644 --- a/changecase.py +++ b/changecase.py @@ -4,6 +4,7 @@ import re, sys from xml.sax.saxutils import escape from titlecase import titlecase +from itertools import cycle if len(sys.argv) > 1 and len(sys.argv[1].strip()): text = sys.argv[1] @@ -26,14 +27,18 @@ def upcase(m): return m.group().upper() return always_uppercase_re.sub(upcase, text) +def alternate_case(text): + funcs = cycle([str.upper, str.lower]) + return ''.join(next(funcs)(c) for c in text) + variations = { 'lower': escape(text.lower(), {'"': '"', '\n': ' '} ), 'upper': escape(text.upper(), {'"': '"', '\n': ' '} ), 'title': escape(titlecase_plus(text), {'"': '"', '\n': ' '} ), 'camel': escape(titlecase_plus(text), {'"': '"', '\n': ' '} ).replace(' ', ''), 'kebab': escape(text.lower(), {'"': '"', '\n': ' '} ).replace(' ', '-').replace('_', '-'), - 'snake': escape(text.lower(), {'"': '"', '\n': ' '} ).replace(' ', '_').replace('-', '_') - + 'snake': escape(text.lower(), {'"': '"', '\n': ' '} ).replace(' ', '_').replace('-', '_'), + 'trout': escape(alternate_case(text), {'"': '"', '\n': ' '} ), } print """ @@ -68,5 +73,10 @@ def upcase(m): snake_case snakecase.png + + "%(trout)s" + tRoUtCaSe + troutcase.png + """ % variations From 82bb40df51b5236a347e9ef86c7fe32c21e943ad Mon Sep 17 00:00:00 2001 From: Benjamin Stier Date: Sat, 18 Dec 2021 14:07:12 +0100 Subject: [PATCH 2/4] New implementation for troutcase. Copied from Noah Krim (see comments in code). This is actually a much nicer implementation, which does not alternate on a 50:50 ratio, but has a bias. --- changecase.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/changecase.py b/changecase.py index ecc9e27..710cf84 100644 --- a/changecase.py +++ b/changecase.py @@ -4,7 +4,7 @@ import re, sys from xml.sax.saxutils import escape from titlecase import titlecase -from itertools import cycle +import random if len(sys.argv) > 1 and len(sys.argv[1].strip()): text = sys.argv[1] @@ -27,9 +27,27 @@ def upcase(m): return m.group().upper() return always_uppercase_re.sub(upcase, text) -def alternate_case(text): - funcs = cycle([str.upper, str.lower]) - return ''.join(next(funcs)(c) for c in text) +# Props to Noah Krim for this +# This is copied from https://github.com/nkrim/spongemock/blob/master/src/spongemock.py +def spongemock(text, diversity_bias=0.5, random_seed=None): + # Error handling + if diversity_bias < 0 or diversity_bias > 1: + raise ValueError('diversity_bias must be between the inclusive range [0,1]') + # Seed the random number generator + random.seed(random_seed) + # Mock the text + out = '' + last_was_upper = True + swap_chance = 0.5 + for c in text: + if c.isalpha(): + if random.random() < swap_chance: + last_was_upper = not last_was_upper + swap_chance = 0.5 + c = c.upper() if last_was_upper else c.lower() + swap_chance += (1-swap_chance)*diversity_bias + out += c + return out variations = { 'lower': escape(text.lower(), {'"': '"', '\n': ' '} ), @@ -38,7 +56,7 @@ def alternate_case(text): 'camel': escape(titlecase_plus(text), {'"': '"', '\n': ' '} ).replace(' ', ''), 'kebab': escape(text.lower(), {'"': '"', '\n': ' '} ).replace(' ', '-').replace('_', '-'), 'snake': escape(text.lower(), {'"': '"', '\n': ' '} ).replace(' ', '_').replace('-', '_'), - 'trout': escape(alternate_case(text), {'"': '"', '\n': ' '} ), + 'trout': escape(spongemock(text), {'"': '"', '\n': ' '} ), } print """ From 6189be4232daa446762cfd67a4f541e7bdc86c5e Mon Sep 17 00:00:00 2001 From: Benjamin Stier Date: Sun, 19 Dec 2021 12:10:18 +0100 Subject: [PATCH 3/4] Add icon for troutcase. --- changecase.py | 2 +- icons.acorn | Bin 98304 -> 122880 bytes troutcase.png | Bin 0 -> 2519 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 troutcase.png diff --git a/changecase.py b/changecase.py index 710cf84..b03c74f 100644 --- a/changecase.py +++ b/changecase.py @@ -93,7 +93,7 @@ def spongemock(text, diversity_bias=0.5, random_seed=None): "%(trout)s" - tRoUtCaSe + TroUTcAsE troutcase.png diff --git a/icons.acorn b/icons.acorn index 26e92f8927ae559587c4d12852fe7b492e274016..27e4b0c6b9964c5876b693a10367659915975cd5 100644 GIT binary patch literal 122880 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 delta 9829 zcmeHNc~nzZx4$R3nFqpYaP+5&pN(+uYk3EYkhC6_r3qTYn`04&$NGg?{jZ%_AkaJ zj?u`jur+5A1R;ddd6AW#{wyZpb)!eU{(GfbxmCGRIZv6Tj8XPix+;YZr|gGVx5!_~ zZ_1C$cgR=C^W;hL;qsnVFGT&hx46yqrhINy|M@PQ;#eEfr&8FEJl~gWxLg*%WA*a( z_4col;kfs$hB=tSaGOtx$)1&ZT|!1yx_5S(E-NQ&R%S+4PVC6Y_>7EcsU(Gql&C9B z&V~tql?5U~1QDB^n3WA}PKT_|$jZn`p4}x!ro?CIvSt&O9pk~7nW-rWx}21Zbk%1w zGAR`Vw{t8tDJxO0^0WR(_SVtenOTWRiCKy135kYmUdM!)8ClbkQZr^!00bR<3CX(j zDT!VQy6i+kMfI@(H`G>8T%ZI%iG~sf#Rz2)6bb+dMy;%b23(!;?YER!A7u27k_{g^ zq%WzdA7sVM2=K`V+3s($!{6lVZ87wG6|A9vo`U)sly)ctj7XrUps1l}pwQX`U`}u& zN<0B`sunNnXMlzDMVZM2GoHar5wxlJ49iH*&PmKtg=VGXCPH7QX++$Jug`YKlz)Qj za;GXlcIj9b8s-Hzw596O)X_s7jg_m^Xq z{r;Hwygx@OzmCQ~&Q-Qg*Lm`Je~Jw6j}bw%0rW(-Pbb(2njH zlt8<qe!~}2*bxBm9tE1msMGPb)9Rn6H(B3g%32maI zUj^-c9c?wVJ2yp51hE%YDXV4T;~mS4?F5m`Xb7pkf;t`nuB*<;VJns`bu%-SkKvQx zD_<#}D<9XJ5=ds1j@2MMbe+cwCpobM&!Y!X_3nimJ|{p5=0Zi)o~NcD zn8JlAxV{LvRB29eNY6-@N+(Kftxj4k zu}ZY+Y5CgnpyhnaC`+M5lZC;erv+(#)_l2nyt$h}@<6gdGFcQOau)s}+%Eh=s19vT^aWo z^^6RLGrEg*q4_8p$%)I96(3ze@nozQPaWW=)+Hq9y#jjrV%0*_gQX*5Z8^B96uC$< zGIa?lIkN{sFsLgqj*L|*=pnpeA(EiUc<(~wgC^noP_Y9ilCd5W1I$LeAuPGPZx0$i~sTktI2fjP?1@CrZ<0PYX-e#iu6fgT~@jyHRh}7#a!e_YWlf zMgtOON|g)lvj<7hC>*^9ki=pmRNNwN3@bLUM1?C4Aa{Iq4`SiD2N1i_XD>R*K%e1v z`%wgIBw*rwJVT5|;Iad#4=b8-4K?O1j7&+NmZ%RLPGixT{)r_piuMXMgd5g5!k*Q4Pgx>W97csu^eWVmm_O(2<0JFIe6$)Id~|X@=&M9#^0<24-KX~ z)YbQqhXǘ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 diff --git a/troutcase.png b/troutcase.png new file mode 100644 index 0000000000000000000000000000000000000000..038ca0600a18dd197df2f50ebcdff30fcf6bcfc2 GIT binary patch literal 2519 zcmV;|2`Ki7P)4Tx062|}Ro!pfR1`mnZ(O7nKcKOW4i$^9Ra0BJ8yc;~21%2p=|UR0&DbiW z$#rfTQ`a`O(`{9s_5yDV_yd5l2Of}kLK+Oj_Ok5(v`JGz71bo9J#^YYXp{DWs&KBa zQ@dTpxRI}aIp=pi@6k0t$5)!;m`NF6-tt{FpOKHBn3g+MAqmexC-gw4rh87hTrL7G z#)U`L!(So6-Zux@>;H3gR;i~0B%VTSS3P|m@o9jRsXML@Al^p#@G0Lx-0?i(9WEw_ zSYddU<1E8793KxjQ|c&UmW!mTC>k>?{om1c9S zUx<6_jj_!T&^M{wWM#>IBbOSf*xP<^F{$j$aOQ5Y{cT zROCL1M7^NKKL z&(yA}mSw#iM0^;IB{ZO5!wl{^Sg-*ysE~&Yz8!E;Qv(A`lu*=Clo*MpVGd>OdF6n^ zam1Jntk;<}MrqIC5$=Q>n{*R}?8oOIDUw5En2dl--Xw34!z7E+5pr-OgyQ-soSab)C%saskMla`aQLVzg0+MZf20tJU&K{hZoBrUc+U4e9&3o zw|KmGEe4#xz17wBu{f`SS_4i66?j31EjY7n{zGfhONK~c+td!TS#B}JoR}5UAd7p& z5phTyXSkK0xCeD3xaYP^o&J~#Xp9xFb0C;HHml5fA<%h1eR|qw7wxF+oNL9T1Aits?sKNIwvGaN)^WO$I^cUV)HzL_| z1K?{9p!>B*)`xfEv!4N6IG{J&h49W#Bz^(#YWw%`e_a{8n{G9m5AeR~_yl0%<7V@p zVq%7nV3bF8J{%qMSWSs z%o!A8j1TyY%GAW6vava%F!lim14;{RJ-aqHN$=u)Ea_ z|7)VVgmqXElX#6wbzZF&V~j%9gbbXI*@(Lgn;vt(QI?PVXQ&I)ZjPaz?uPey>9w^1 z+iDXy9YPy6$5`csY8lN-PNS$f84DPJiGq}AQ)aVXH#`Spi1o?&q#p$Vu_=yC5bJJ0 zTb&Hq5=Xp08~F#smTtmno$IM(^vwhmjKUkyR+@tqZ#v+tmj=HR?sdYs_A|V-J%MvK z;eoB<51vNPmI~B&Y(UGyU*f%Y#m|eS1Ego8=wK8xUyWn9JqN{yOL6m|zi@Iektbe{ zdxCigzOjT_??{eVf}<=*<{%zv{(VWfX%^v+M9+7_{j3uXURJMi29_NNBh+~YCx#=K z=Dw=3;OI~I=luV6e0tXGNOHfrdf(zXeb5lL;y+i!k zoJV|5OWdVl{4-F1@?aQKT^{)Mc#xGPI9~&{G%dB3+^1&A!DSgkaPw@?l?Lw`IWdU- z9yxr%4%zVcUIf|_dR(5+evwgx@*~0&4a!F0J`uhVj*2}`n%ybe_1ECGjyc5K?|QWC z=*EY~q*etj1L!{?$2Ha};1ll>o)Ml+4iG_TR1C;ParIf?f{0ERyp^;GdCO53Ooy*! z6643hnD|?4ygP9pGJ`VYj!HCEokI87Dm3g7munP5N95JvavXA*V*%u~29W=R=$&Cq zj?0NW6jlE@SIcp=TFl{ve-&%hpt-UaT_+{Q3##YVfk35v zWg6m${wsdhD%|+ET@)TgrPcJcEu zGkW!|S4$ z!#n`7)D6E*rO7#vewj2W8`8u)HKB+G>9A~uWW`fAH%eLSs!W|YYpm9yofu^ijh>=v z;HgEdNeMP5SDAK_IR|C+>uG>e;53eYjian_T$akTlZaC?d}=VClvO8~K$7*Gv(Ei0 zp66n58n3a`t+A>rmZ#zkpDGHl>S{Ni3ng6&&KzTvQ`NF!Y~9{~y#adz_6F Date: Sun, 19 Dec 2021 12:13:55 +0100 Subject: [PATCH 4/4] Remove quotation marks in alfred output for troutcase. --- changecase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changecase.py b/changecase.py index b03c74f..ef1c416 100644 --- a/changecase.py +++ b/changecase.py @@ -92,7 +92,7 @@ def spongemock(text, diversity_bias=0.5, random_seed=None): snakecase.png - "%(trout)s" + %(trout)s TroUTcAsE troutcase.png