kandi background
Explore Kits

flair | simple framework for state-of-the-art Natural Language | Natural Language Processing library

 by   flairNLP Python Version: v0.11 License: Non-SPDX

 by   flairNLP Python Version: v0.11 License: Non-SPDX

Download this library from

kandi X-RAY | flair Summary

flair is a Python library typically used in Artificial Intelligence, Natural Language Processing, Deep Learning, Pytorch, Bert applications. flair has no bugs, it has no vulnerabilities, it has build file available and it has high support. However flair has a Non-SPDX License. You can install using 'pip install flair' or download it from GitHub, PyPI.
A very simple framework for state-of-the-art NLP. Developed by Humboldt University of Berlin and friends.
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • flair has a highly active ecosystem.
  • It has 11467 star(s) with 1849 fork(s). There are 198 watchers for this library.
  • There were 1 major release(s) in the last 12 months.
  • There are 89 open issues and 1727 have been closed. On average issues are closed in 50 days. There are 7 open pull requests and 0 closed requests.
  • It has a negative sentiment in the developer community.
  • The latest version of flair is v0.11
flair Support
Best in #Natural Language Processing
Average in #Natural Language Processing
flair Support
Best in #Natural Language Processing
Average in #Natural Language Processing

quality kandi Quality

  • flair has 0 bugs and 0 code smells.
flair Quality
Best in #Natural Language Processing
Average in #Natural Language Processing
flair Quality
Best in #Natural Language Processing
Average in #Natural Language Processing

securitySecurity

  • flair has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • flair code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.
flair Security
Best in #Natural Language Processing
Average in #Natural Language Processing
flair Security
Best in #Natural Language Processing
Average in #Natural Language Processing

license License

  • flair has a Non-SPDX License.
  • Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.
flair License
Best in #Natural Language Processing
Average in #Natural Language Processing
flair License
Best in #Natural Language Processing
Average in #Natural Language Processing

buildReuse

  • flair releases are available to install and integrate.
  • Deployable package is available in PyPI.
  • Build file is available. You can build the component from source.
  • Installation instructions, examples and code snippets are available.
  • flair saves you 10610 person hours of effort in developing the same functionality from scratch.
  • It has 26098 lines of code, 1430 functions and 65 files.
  • It has medium code complexity. Code complexity directly impacts maintainability of the code.
flair Reuse
Best in #Natural Language Processing
Average in #Natural Language Processing
flair Reuse
Best in #Natural Language Processing
Average in #Natural Language Processing
Top functions reviewed by kandi - BETA

kandi has reviewed flair and discovered the below as its top functions. This is intended to give you an instant insight into flair implemented functionality, and help decide if they suit your requirements.

  • Fetch model from Hugger
    • Download a file from cache
    • Wrapper for tqdm progress bar
    • Return the path to a file or directory
  • Evaluate the model
    • Get one or more embeddings
    • Adds item to index
    • Prepare tokens to be embedding
  • Adds embeddings to BERT model
    • Add embeddings
      • Identify column - level annotations
        • Extract and convert to Conllu Packet
          • Returns a dictionary mapping QID - IDs to wikinames
            • Compute embeddings for each sentence
              • Predict for given sentences
                • Compute the embeddings
                  • Creates a dictionary of all the wikinames in the list
                    • Prints the prediction results
                      • Predict a zero shot
                        • Generate a label dictionary for each label
                          • Predict the given sentences
                            • Predict given sentences
                              • Decode features_tuple
                                • Adds embeddings
                                  • Evaluate objective function
                                    • Adds embedding

                                      Get all kandi verified functions for this library.

                                      Get all kandi verified functions for this library.

                                      flair Key Features

                                      A powerful NLP library. Flair allows you to apply our state-of-the-art natural language processing (NLP) models to your text, such as named entity recognition (NER), part-of-speech tagging (PoS), special support for biomedical data, sense disambiguation and classification, with support for a rapidly growing number of languages.

                                      A text embedding library. Flair has simple interfaces that allow you to use and combine different word and document embeddings, including our proposed Flair embeddings, BERT embeddings and ELMo embeddings.

                                      A PyTorch NLP framework. Our framework builds directly on PyTorch, making it easy to train your own models and experiment with new approaches using Flair embeddings and classes.

                                      flair Examples and Code Snippets

                                      See all related Code Snippets

                                      Requirements and Installation

                                      copy iconCopydownload iconDownload
                                      pip install flair
                                      

                                      Example Usage

                                      copy iconCopydownload iconDownload
                                      from flair.data import Sentence
                                      from flair.models import SequenceTagger
                                      
                                      # make a sentence
                                      sentence = Sentence('I love Berlin .')
                                      
                                      # load the NER tagger
                                      tagger = SequenceTagger.load('ner')
                                      
                                      # run NER over sentence
                                      tagger.predict(sentence)
                                      

                                      Citing Flair

                                      copy iconCopydownload iconDownload
                                      @inproceedings{akbik2018coling,
                                        title={Contextual String Embeddings for Sequence Labeling},
                                        author={Akbik, Alan and Blythe, Duncan and Vollgraf, Roland},
                                        booktitle = {{COLING} 2018, 27th International Conference on Computational Linguistics},
                                        pages     = {1638--1649},
                                        year      = {2018}
                                      }
                                      

                                      PRAW Posting new submission with a flair?

                                      copy iconCopydownload iconDownload
                                      reddit.subreddit("test").flair.templates
                                      
                                      script/
                                           - main.py
                                           - image.png
                                      
                                      reddit.subreddit('').submit_image(title, image_path="image.png")
                                      
                                      reddit.subreddit("test").flair.templates
                                      
                                      script/
                                           - main.py
                                           - image.png
                                      
                                      reddit.subreddit('').submit_image(title, image_path="image.png")
                                      
                                      reddit.subreddit("test").flair.templates
                                      
                                      script/
                                           - main.py
                                           - image.png
                                      
                                      reddit.subreddit('').submit_image(title, image_path="image.png")
                                      

                                      How to predict actual future values after testing the trained LSTM model?

                                      copy iconCopydownload iconDownload
                                      import pandas as pd
                                      import numpy as np
                                      from datetime import date
                                      from nsepy import get_history
                                      from keras.models import Sequential
                                      from keras.layers import LSTM, Dense
                                      from sklearn.preprocessing import MinMaxScaler
                                      pd.options.mode.chained_assignment = None
                                      
                                      # load the data
                                      stock_ticker = 'TCS'
                                      stock_name = 'Tata Consultancy Services'
                                      train_start = date(2017, 1, 1)
                                      train_end = date.today()
                                      data = get_history(symbol=stock_ticker, start=train_start, end=train_end)
                                      data.index = pd.DatetimeIndex(data.index)
                                      data = data[['Close']]
                                      
                                      # scale the data
                                      scaler = MinMaxScaler(feature_range=(0, 1)).fit(data)
                                      z = scaler.transform(data)
                                      
                                      # extract the input sequences and target values
                                      window_size = 60
                                      
                                      x, y = [], []
                                      
                                      for i in range(window_size, len(z)):
                                          x.append(z[i - window_size: i])
                                          y.append(z[i])
                                      
                                      x, y = np.array(x), np.array(y)
                                      
                                      # build and train the model
                                      model = Sequential()
                                      model.add(LSTM(units=50, return_sequences=True, input_shape=x.shape[1:]))
                                      model.add(LSTM(units=50))
                                      model.add(Dense(units=1))
                                      model.compile(loss='mse', optimizer='adam')
                                      model.fit(x, y, epochs=100, batch_size=128, verbose=1)
                                      
                                      # generate the multi-step forecasts
                                      def multi_step_forecasts(n_past, n_future):
                                      
                                          x_past = x[- n_past - 1:, :, :][:1]  # last observed input sequence
                                          y_past = y[- n_past - 1]             # last observed target value
                                          y_future = []                        # predicted target values
                                      
                                          for i in range(n_past + n_future):
                                      
                                              # feed the last forecast back to the model as an input
                                              x_past = np.append(x_past[:, 1:, :], y_past.reshape(1, 1, 1), axis=1)
                                      
                                              # generate the next forecast
                                              y_past = model.predict(x_past)
                                      
                                              # save the forecast
                                              y_future.append(y_past.flatten()[0])
                                      
                                          # transform the forecasts back to the original scale
                                          y_future = scaler.inverse_transform(np.array(y_future).reshape(-1, 1)).flatten()
                                      
                                          # add the forecasts to the data frame
                                          df_past = data.rename(columns={'Close': 'Actual'}).copy()
                                      
                                          df_future = pd.DataFrame(
                                              index=pd.bdate_range(start=data.index[- n_past - 1] + pd.Timedelta(days=1), periods=n_past + n_future),
                                              columns=['Forecast'],
                                              data=y_future
                                          )
                                      
                                          return df_past.join(df_future, how='outer')
                                      
                                      # forecast the next 30 days
                                      df1 = multi_step_forecasts(n_past=0, n_future=30)
                                      df1.plot(title=stock_name)
                                      
                                      # forecast the last 20 days and the next 30 days
                                      df2 = multi_step_forecasts(n_past=20, n_future=30)
                                      df2.plot(title=stock_name)
                                      

                                      Chi squared test for significance

                                      copy iconCopydownload iconDownload
                                      tbl <- xtabs(~Sex+Tactic, combo1)
                                      tbl
                                      #    Tactic
                                      # Sex EstRes Migr OcRes
                                      #   F      1   26     2
                                      #   M      0   15     0
                                      
                                      chisq.test(tbl)
                                      # 
                                      #   Pearson's Chi-squared test
                                      # 
                                      # data:  tbl
                                      # X-squared = 1.6653, df = 2, p-value = 0.4349
                                      # 
                                      # Warning message:
                                      # In chisq.test(tbl) : Chi-squared approximation may be incorrect
                                      
                                      chisq.test(tbl, simulate.p.value=TRUE)
                                      # 
                                      #   Pearson's Chi-squared test with simulated p-value (based on 2000 replicates)
                                      # 
                                      # data:  tbl
                                      # X-squared = 1.6653, df = NA, p-value = 0.6922
                                      
                                      tbl <- xtabs(~Sex+Tactic, combo1)
                                      tbl
                                      #    Tactic
                                      # Sex EstRes Migr OcRes
                                      #   F      1   26     2
                                      #   M      0   15     0
                                      
                                      chisq.test(tbl)
                                      # 
                                      #   Pearson's Chi-squared test
                                      # 
                                      # data:  tbl
                                      # X-squared = 1.6653, df = 2, p-value = 0.4349
                                      # 
                                      # Warning message:
                                      # In chisq.test(tbl) : Chi-squared approximation may be incorrect
                                      
                                      chisq.test(tbl, simulate.p.value=TRUE)
                                      # 
                                      #   Pearson's Chi-squared test with simulated p-value (based on 2000 replicates)
                                      # 
                                      # data:  tbl
                                      # X-squared = 1.6653, df = NA, p-value = 0.6922
                                      
                                      tbl <- xtabs(~Sex+Tactic, combo1)
                                      tbl
                                      #    Tactic
                                      # Sex EstRes Migr OcRes
                                      #   F      1   26     2
                                      #   M      0   15     0
                                      
                                      chisq.test(tbl)
                                      # 
                                      #   Pearson's Chi-squared test
                                      # 
                                      # data:  tbl
                                      # X-squared = 1.6653, df = 2, p-value = 0.4349
                                      # 
                                      # Warning message:
                                      # In chisq.test(tbl) : Chi-squared approximation may be incorrect
                                      
                                      chisq.test(tbl, simulate.p.value=TRUE)
                                      # 
                                      #   Pearson's Chi-squared test with simulated p-value (based on 2000 replicates)
                                      # 
                                      # data:  tbl
                                      # X-squared = 1.6653, df = NA, p-value = 0.6922
                                      

                                      bsddb.btopen alternative on Google Colab?

                                      copy iconCopydownload iconDownload
                                      FileNotFoundError: [Errno 2] No such file or directory: 'src/Modules/berkeleydb.h'
                                      
                                      !apt search Berkelay
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !pip install berkeleydb
                                      
                                      import berkeleydb as bsddb
                                      
                                      FileNotFoundError: [Errno 2] No such file or directory: 'src/Modules/berkeleydb.h'
                                      
                                      !apt search Berkelay
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !pip install berkeleydb
                                      
                                      import berkeleydb as bsddb
                                      
                                      FileNotFoundError: [Errno 2] No such file or directory: 'src/Modules/berkeleydb.h'
                                      
                                      !apt search Berkelay
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !pip install berkeleydb
                                      
                                      import berkeleydb as bsddb
                                      
                                      FileNotFoundError: [Errno 2] No such file or directory: 'src/Modules/berkeleydb.h'
                                      
                                      !apt search Berkelay
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !apt install libdb5.3-dev
                                      
                                      !pip install berkeleydb
                                      
                                      import berkeleydb as bsddb
                                      

                                      Convert dataframe for category percentages in python

                                      copy iconCopydownload iconDownload
                                      df = {
                                          'Submission_Date': ['2021-01-01', '2021-03-01', '2021-03-01', '2021-03-01', '2021-04-01', '2021-04-01'],
                                          'Flair': ['Hedge Fund Tears', 'Hedge Fund Tears', 'Hedge Fund Tears', 'Due Diligence', 'Discussion', 'News']
                                      }
                                      df = pd.DataFrame(df)
                                      df['Submission_Date'] = pd.to_datetime(df['Submission_Date'])
                                      display(df)
                                      
                                      unique_flairs = list(df['Flair'].unique())
                                      flair_df = pd.DataFrame()
                                      
                                      # iterate over unique dates
                                      for date in df['Submission_Date'].unique():
                                          date_subset = df.loc[df['Submission_Date'] == date]
                                          # for flairs in each date, get counts of values
                                          counts = date_subset['Flair'].value_counts()
                                          # get shares
                                          shares = counts / len(date_subset)
                                          # transpose series for appending
                                          shares_df = pd.DataFrame(shares).transpose()
                                          shares_df['Submission_Date'] = date
                                          for flair in [x for x in unique_flairs if x not in shares_df.columns]:
                                              shares_df[flair] = np.nan
                                          # append shares per date
                                          flair_df = pd.concat([flair_df, shares_df])
                                          flair_df = flair_df.reset_index(drop=True)
                                      
                                      # rearrange columns
                                      flair_df = flair_df[['Submission_Date'] + unique_flairs]
                                      display(flair_df)
                                      
                                      df = {
                                          'Submission_Date': ['2021-01-01', '2021-03-01', '2021-03-01', '2021-03-01', '2021-04-01', '2021-04-01'],
                                          'Flair': ['Hedge Fund Tears', 'Hedge Fund Tears', 'Hedge Fund Tears', 'Due Diligence', 'Discussion', 'News']
                                      }
                                      df = pd.DataFrame(df)
                                      df['Submission_Date'] = pd.to_datetime(df['Submission_Date'])
                                      display(df)
                                      
                                      unique_flairs = list(df['Flair'].unique())
                                      flair_df = pd.DataFrame()
                                      
                                      # iterate over unique dates
                                      for date in df['Submission_Date'].unique():
                                          date_subset = df.loc[df['Submission_Date'] == date]
                                          # for flairs in each date, get counts of values
                                          counts = date_subset['Flair'].value_counts()
                                          # get shares
                                          shares = counts / len(date_subset)
                                          # transpose series for appending
                                          shares_df = pd.DataFrame(shares).transpose()
                                          shares_df['Submission_Date'] = date
                                          for flair in [x for x in unique_flairs if x not in shares_df.columns]:
                                              shares_df[flair] = np.nan
                                          # append shares per date
                                          flair_df = pd.concat([flair_df, shares_df])
                                          flair_df = flair_df.reset_index(drop=True)
                                      
                                      # rearrange columns
                                      flair_df = flair_df[['Submission_Date'] + unique_flairs]
                                      display(flair_df)
                                      
                                      data = pandas.DataFrame.from_dict({
                                          "Submission_Date": [
                                              datetime.date(2021, 1, 1),
                                              datetime.date(2021, 1, 1),
                                              datetime.date(2021, 1, 2),
                                              datetime.date(2021, 1, 2),
                                              datetime.date(2021, 1, 3),
                                              datetime.date(2021, 1, 3),
                                              datetime.date(2021, 1, 3),
                                              datetime.date(2021, 1, 4),
                                          ],
                                          "Flair": ["Discussion", "Due Diligence", "Due Diligence", "Discussion", "Discussion",  "Hedge Fund Tears", "News", "News"],
                                      })
                                      data["Flair1"] = data.Flair.values # copy to another column to assist pivot
                                      res = pandas.pivot_table(
                                          data,
                                          index=["Submission_Date"],
                                          values=['Flair'],
                                          columns=['Flair1'],
                                          aggfunc='count',
                                          fill_value=0
                                      
                                      )
                                      res = pandas.DataFrame(res.to_records())
                                      res.columns = [col.replace("('Flair', ", '').replace(")", '') for col in res.columns]
                                      res['Total'] = res.astype({col:float for col in res.columns if col != "Submission_Date"}).sum(numeric_only=True, axis=1) # find Total
                                      res[[col for col in res.columns if col != "Submission_Date"]] = res[[col for col in res.columns if col != "Submission_Date"]].div(res.Total, axis=0) # divide by Total
                                      res = res.drop(columns=['Total']) # drop Total
                                      print(res)
                                      

                                      Why aren't these regular expressions not working with exclamation point?

                                      copy iconCopydownload iconDownload
                                      // Assuming exclamation marks only appear at the end of the code.
                                      const markEndRegex = "(^(?=[\\w!])|(?<=[\\w!])$|(?<=[^\\w!])(?=[\\w!])|(?<=[\\w!])(?=[^\\w!]))";
                                      patterns.forEach((val, idx, array) => array[idx] = '\\b(' + val + ')' + markEndRegex);
                                      

                                      How to generate _id pages for movies using NUXT generated from API fetched from the movie DB

                                      copy iconCopydownload iconDownload
                                      movies/
                                        index.vue (previously movies.vue)
                                        _id.vue
                                      

                                      Horizontally center content on small screens

                                      copy iconCopydownload iconDownload
                                      footer {
                                        display: flex;
                                        justify-content: center;
                                        align-items: center;
                                        margin-top: 50px;
                                        padding: 10px 0;
                                        width: 100%;
                                      }
                                      
                                      footer div {
                                        min-width: 70px;
                                        margin: 0 10px;
                                      }
                                      
                                      footer div a {
                                        cursor: pointer;
                                        width: 70px;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      footer div a:hover {
                                        fill: orange;
                                        transform: scale(0.9);
                                      }
                                      
                                      footer div img {
                                        transform: scale(0.9);
                                        margin: 0;
                                        border-radius: 1em;
                                        border: 3px solid transparent;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      footer div img:hover {
                                        border: 3px solid orange;
                                        transform: scale(0.8);
                                      }
                                      
                                      @media (max-width: 682px) {
                                        footer {
                                          flex-direction: row;
                                          flex-wrap: wrap;
                                        }
                                        footer div {
                                         margin: 0;
                                          width: 45%;
                                          display: flex;
                                          align-items: center;
                                          justify-content: center;
                                        }
                                      }
                                      <footer>
                                        <div>
                                          <a class="linked__in" href="#">
                                            <svg viewBox="0 0 24 24">
                                                  <path
                                                    d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
                                                  />
                                                </svg>
                                          </a>
                                        </div>
                                        <div>
                                          <a href="#" class="gh">
                                            <svg viewBox="0 0 128 128">
                                                  <path
                                                    d="M64 1.512c-23.493 0-42.545 19.047-42.545 42.545 0 18.797 12.19 34.745 29.095 40.37 2.126.394 2.907-.923 2.907-2.047 0-1.014-.04-4.366-.058-7.92-11.837 2.573-14.334-5.02-14.334-5.02-1.935-4.918-4.724-6.226-4.724-6.226-3.86-2.64.29-2.586.29-2.586 4.273.3 6.523 4.385 6.523 4.385 3.794 6.504 9.953 4.623 12.38 3.536.383-2.75 1.485-4.628 2.702-5.69-9.45-1.075-19.384-4.724-19.384-21.026 0-4.645 1.662-8.44 4.384-11.42-.442-1.072-1.898-5.4.412-11.26 0 0 3.572-1.142 11.7 4.363 3.395-.943 7.035-1.416 10.65-1.432 3.616.017 7.258.49 10.658 1.432 8.12-5.504 11.688-4.362 11.688-4.362 2.316 5.86.86 10.187.418 11.26 2.728 2.978 4.378 6.774 4.378 11.42 0 16.34-9.953 19.938-19.427 20.99 1.526 1.32 2.886 3.91 2.886 7.88 0 5.692-.048 10.273-.048 11.674 0 1.13.766 2.458 2.922 2.04 16.896-5.632 29.07-21.574 29.07-40.365C106.545 20.56 87.497 1.512 64 1.512z"
                                                    clip-rule="evenodd"
                                                  />
                                                  <path
                                                    d="M37.57 62.596c-.095.212-.428.275-.73.13-.31-.14-.482-.427-.382-.64.09-.216.424-.277.733-.132.31.14.486.43.38.642zm-.524-.388M39.293 64.52c-.203.187-.6.1-.87-.198-.278-.297-.33-.694-.124-.884.208-.188.593-.1.87.197.28.3.335.693.123.884zm-.406-.437M40.97 66.968c-.26.182-.687.012-.95-.367-.262-.377-.262-.83.005-1.013.264-.182.684-.018.95.357.262.385.262.84-.005 1.024zm0 0M43.268 69.336c-.233.257-.73.188-1.093-.163-.372-.343-.475-.83-.242-1.087.237-.257.736-.185 1.102.163.37.342.482.83.233 1.086zm0 0M46.44 70.71c-.104.334-.582.485-1.064.344-.482-.146-.796-.536-.7-.872.1-.336.582-.493 1.067-.342.48.144.795.53.696.87zm0 0M49.92 70.965c.013.35-.396.642-.902.648-.508.012-.92-.272-.926-.618 0-.354.4-.642.908-.65.506-.01.92.272.92.62zm0 0M53.16 70.414c.06.342-.29.694-.793.787-.494.092-.95-.12-1.014-.46-.06-.35.297-.7.79-.792.503-.088.953.118 1.017.466zm0 0"
                                                  />
                                                  <path
                                                    fill="#100E0F"
                                                    d="M24.855 108.302h-10.7a.5.5 0 0 0-.5.5v5.232a.5.5 0 0 0 .5.5h4.173v6.5s-.937.32-3.53.32c-3.056 0-7.327-1.116-7.327-10.508 0-9.393 4.448-10.63 8.624-10.63 3.614 0 5.17.636 6.162.943.31.094.6-.216.6-.492l1.193-5.055a.468.468 0 0 0-.192-.39c-.403-.288-2.857-1.66-9.058-1.66-7.144 0-14.472 3.038-14.472 17.65 0 14.61 8.39 16.787 15.46 16.787 5.854 0 9.405-2.502 9.405-2.502.146-.08.162-.285.162-.38v-16.316a.5.5 0 0 0-.5-.5zM79.506 94.81H73.48a.5.5 0 0 0-.498.503l.002 11.644h-9.392V95.313a.5.5 0 0 0-.497-.503H57.07a.5.5 0 0 0-.498.503v31.53c0 .277.224.503.498.503h6.025a.5.5 0 0 0 .497-.504v-13.486h9.392l-.016 13.486c0 .278.224.504.5.504h6.038a.5.5 0 0 0 .497-.504v-31.53c0-.278-.22-.502-.497-.502zM32.34 95.527c-2.144 0-3.884 1.753-3.884 3.923 0 2.167 1.74 3.925 3.884 3.925 2.146 0 3.885-1.758 3.885-3.925 0-2.17-1.74-3.923-3.885-3.923zM35.296 105.135H29.29c-.276 0-.522.284-.522.56v20.852c0 .613.382.795.876.795h5.41c.595 0 .74-.292.74-.805v-6.346-14.553a.5.5 0 0 0-.498-.502zM102.902 105.182h-5.98a.5.5 0 0 0-.496.504v15.46s-1.52 1.11-3.675 1.11-2.727-.977-2.727-3.088v-13.482a.5.5 0 0 0-.497-.504h-6.068a.502.502 0 0 0-.498.504v14.502c0 6.27 3.495 7.804 8.302 7.804 3.944 0 7.124-2.18 7.124-2.18s.15 1.15.22 1.285c.07.136.247.273.44.273l3.86-.017a.502.502 0 0 0 .5-.504l-.003-21.166a.504.504 0 0 0-.5-.502zM119.244 104.474c-3.396 0-5.706 1.515-5.706 1.515V95.312a.5.5 0 0 0-.497-.503H107a.5.5 0 0 0-.5.503v31.53a.5.5 0 0 0 .5.503h4.192c.19 0 .332-.097.437-.268.103-.17.254-1.454.254-1.454s2.47 2.34 7.148 2.34c5.49 0 8.64-2.784 8.64-12.502s-5.03-10.988-8.428-10.988zm-2.36 17.764c-2.073-.063-3.48-1.004-3.48-1.004v-9.985s1.388-.85 3.09-1.004c2.153-.193 4.228.458 4.228 5.594 0 5.417-.935 6.486-3.837 6.398zM53.195 122.12c-.263 0-.937.107-1.63.107-2.22 0-2.973-1.032-2.973-2.368v-8.866h4.52a.5.5 0 0 0 .5-.504v-4.856a.5.5 0 0 0-.5-.502h-4.52l-.007-5.97c0-.227-.116-.34-.378-.34h-6.16c-.238 0-.367.106-.367.335v6.17s-3.087.745-3.295.805a.5.5 0 0 0-.36.48v3.877a.5.5 0 0 0 .497.503h3.158v9.328c0 6.93 4.86 7.61 8.14 7.61 1.497 0 3.29-.48 3.586-.59.18-.067.283-.252.283-.453l.004-4.265a.51.51 0 0 0-.5-.502z"
                                                  />
                                                </svg>
                                          </a>
                                      
                                        </div>
                                        <div>
                                          <img src="https://stackoverflow.com/users/flair/11989189.png?theme=dark" width="208" height="58" class="so" alt="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers" title="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers"
                                          />
                                        </div>
                                        <div>
                                          <a class="mail__me" href="#">
                                            <svg viewBox="0 0 400 400">
                                                  <polygon id="XMLID_869_" points="0,127.5 0,274.219 104.8,206.1  " />
                                                  <polygon
                                                    id="XMLID_870_"
                                                    points="400,274.219 400,127.5 295.2,206.1     "
                                                  />
                                                  <polygon
                                                    id="XMLID_871_"
                                                    points="200,277.5 130.357,225.268 0,310 0,340 400,340 400,310 269.643,225.268     "
                                                  />
                                                  <polygon
                                                    id="XMLID_872_"
                                                    points="0,90 200,240 400,90 400,60 0,60   "
                                                  />
                                                </svg>
                                          </a>
                                        </div>
                                      </footer>
                                      footer {
                                        display: flex;
                                        justify-content: center;
                                        align-items: center;
                                        margin-top: 50px;
                                        padding: 10px 0;
                                        width: 100%;
                                      }
                                      
                                      footer div {
                                        min-width: 70px;
                                        margin: 0 10px;
                                      }
                                      
                                      footer div a {
                                        cursor: pointer;
                                        width: 70px;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      footer div a:hover {
                                        fill: orange;
                                        transform: scale(0.9);
                                      }
                                      
                                      footer div img {
                                        transform: scale(0.9);
                                        margin: 0;
                                        border-radius: 1em;
                                        border: 3px solid transparent;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      footer div img:hover {
                                        border: 3px solid orange;
                                        transform: scale(0.8);
                                      }
                                      
                                      @media (max-width: 682px) {
                                        footer {
                                          flex-direction: row;
                                          flex-wrap: wrap;
                                        }
                                        footer div {
                                         margin: 0;
                                          width: 45%;
                                          display: flex;
                                          align-items: center;
                                          justify-content: center;
                                        }
                                      }
                                      <footer>
                                        <div>
                                          <a class="linked__in" href="#">
                                            <svg viewBox="0 0 24 24">
                                                  <path
                                                    d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
                                                  />
                                                </svg>
                                          </a>
                                        </div>
                                        <div>
                                          <a href="#" class="gh">
                                            <svg viewBox="0 0 128 128">
                                                  <path
                                                    d="M64 1.512c-23.493 0-42.545 19.047-42.545 42.545 0 18.797 12.19 34.745 29.095 40.37 2.126.394 2.907-.923 2.907-2.047 0-1.014-.04-4.366-.058-7.92-11.837 2.573-14.334-5.02-14.334-5.02-1.935-4.918-4.724-6.226-4.724-6.226-3.86-2.64.29-2.586.29-2.586 4.273.3 6.523 4.385 6.523 4.385 3.794 6.504 9.953 4.623 12.38 3.536.383-2.75 1.485-4.628 2.702-5.69-9.45-1.075-19.384-4.724-19.384-21.026 0-4.645 1.662-8.44 4.384-11.42-.442-1.072-1.898-5.4.412-11.26 0 0 3.572-1.142 11.7 4.363 3.395-.943 7.035-1.416 10.65-1.432 3.616.017 7.258.49 10.658 1.432 8.12-5.504 11.688-4.362 11.688-4.362 2.316 5.86.86 10.187.418 11.26 2.728 2.978 4.378 6.774 4.378 11.42 0 16.34-9.953 19.938-19.427 20.99 1.526 1.32 2.886 3.91 2.886 7.88 0 5.692-.048 10.273-.048 11.674 0 1.13.766 2.458 2.922 2.04 16.896-5.632 29.07-21.574 29.07-40.365C106.545 20.56 87.497 1.512 64 1.512z"
                                                    clip-rule="evenodd"
                                                  />
                                                  <path
                                                    d="M37.57 62.596c-.095.212-.428.275-.73.13-.31-.14-.482-.427-.382-.64.09-.216.424-.277.733-.132.31.14.486.43.38.642zm-.524-.388M39.293 64.52c-.203.187-.6.1-.87-.198-.278-.297-.33-.694-.124-.884.208-.188.593-.1.87.197.28.3.335.693.123.884zm-.406-.437M40.97 66.968c-.26.182-.687.012-.95-.367-.262-.377-.262-.83.005-1.013.264-.182.684-.018.95.357.262.385.262.84-.005 1.024zm0 0M43.268 69.336c-.233.257-.73.188-1.093-.163-.372-.343-.475-.83-.242-1.087.237-.257.736-.185 1.102.163.37.342.482.83.233 1.086zm0 0M46.44 70.71c-.104.334-.582.485-1.064.344-.482-.146-.796-.536-.7-.872.1-.336.582-.493 1.067-.342.48.144.795.53.696.87zm0 0M49.92 70.965c.013.35-.396.642-.902.648-.508.012-.92-.272-.926-.618 0-.354.4-.642.908-.65.506-.01.92.272.92.62zm0 0M53.16 70.414c.06.342-.29.694-.793.787-.494.092-.95-.12-1.014-.46-.06-.35.297-.7.79-.792.503-.088.953.118 1.017.466zm0 0"
                                                  />
                                                  <path
                                                    fill="#100E0F"
                                                    d="M24.855 108.302h-10.7a.5.5 0 0 0-.5.5v5.232a.5.5 0 0 0 .5.5h4.173v6.5s-.937.32-3.53.32c-3.056 0-7.327-1.116-7.327-10.508 0-9.393 4.448-10.63 8.624-10.63 3.614 0 5.17.636 6.162.943.31.094.6-.216.6-.492l1.193-5.055a.468.468 0 0 0-.192-.39c-.403-.288-2.857-1.66-9.058-1.66-7.144 0-14.472 3.038-14.472 17.65 0 14.61 8.39 16.787 15.46 16.787 5.854 0 9.405-2.502 9.405-2.502.146-.08.162-.285.162-.38v-16.316a.5.5 0 0 0-.5-.5zM79.506 94.81H73.48a.5.5 0 0 0-.498.503l.002 11.644h-9.392V95.313a.5.5 0 0 0-.497-.503H57.07a.5.5 0 0 0-.498.503v31.53c0 .277.224.503.498.503h6.025a.5.5 0 0 0 .497-.504v-13.486h9.392l-.016 13.486c0 .278.224.504.5.504h6.038a.5.5 0 0 0 .497-.504v-31.53c0-.278-.22-.502-.497-.502zM32.34 95.527c-2.144 0-3.884 1.753-3.884 3.923 0 2.167 1.74 3.925 3.884 3.925 2.146 0 3.885-1.758 3.885-3.925 0-2.17-1.74-3.923-3.885-3.923zM35.296 105.135H29.29c-.276 0-.522.284-.522.56v20.852c0 .613.382.795.876.795h5.41c.595 0 .74-.292.74-.805v-6.346-14.553a.5.5 0 0 0-.498-.502zM102.902 105.182h-5.98a.5.5 0 0 0-.496.504v15.46s-1.52 1.11-3.675 1.11-2.727-.977-2.727-3.088v-13.482a.5.5 0 0 0-.497-.504h-6.068a.502.502 0 0 0-.498.504v14.502c0 6.27 3.495 7.804 8.302 7.804 3.944 0 7.124-2.18 7.124-2.18s.15 1.15.22 1.285c.07.136.247.273.44.273l3.86-.017a.502.502 0 0 0 .5-.504l-.003-21.166a.504.504 0 0 0-.5-.502zM119.244 104.474c-3.396 0-5.706 1.515-5.706 1.515V95.312a.5.5 0 0 0-.497-.503H107a.5.5 0 0 0-.5.503v31.53a.5.5 0 0 0 .5.503h4.192c.19 0 .332-.097.437-.268.103-.17.254-1.454.254-1.454s2.47 2.34 7.148 2.34c5.49 0 8.64-2.784 8.64-12.502s-5.03-10.988-8.428-10.988zm-2.36 17.764c-2.073-.063-3.48-1.004-3.48-1.004v-9.985s1.388-.85 3.09-1.004c2.153-.193 4.228.458 4.228 5.594 0 5.417-.935 6.486-3.837 6.398zM53.195 122.12c-.263 0-.937.107-1.63.107-2.22 0-2.973-1.032-2.973-2.368v-8.866h4.52a.5.5 0 0 0 .5-.504v-4.856a.5.5 0 0 0-.5-.502h-4.52l-.007-5.97c0-.227-.116-.34-.378-.34h-6.16c-.238 0-.367.106-.367.335v6.17s-3.087.745-3.295.805a.5.5 0 0 0-.36.48v3.877a.5.5 0 0 0 .497.503h3.158v9.328c0 6.93 4.86 7.61 8.14 7.61 1.497 0 3.29-.48 3.586-.59.18-.067.283-.252.283-.453l.004-4.265a.51.51 0 0 0-.5-.502z"
                                                  />
                                                </svg>
                                          </a>
                                      
                                        </div>
                                        <div>
                                          <img src="https://stackoverflow.com/users/flair/11989189.png?theme=dark" width="208" height="58" class="so" alt="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers" title="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers"
                                          />
                                        </div>
                                        <div>
                                          <a class="mail__me" href="#">
                                            <svg viewBox="0 0 400 400">
                                                  <polygon id="XMLID_869_" points="0,127.5 0,274.219 104.8,206.1  " />
                                                  <polygon
                                                    id="XMLID_870_"
                                                    points="400,274.219 400,127.5 295.2,206.1     "
                                                  />
                                                  <polygon
                                                    id="XMLID_871_"
                                                    points="200,277.5 130.357,225.268 0,310 0,340 400,340 400,310 269.643,225.268     "
                                                  />
                                                  <polygon
                                                    id="XMLID_872_"
                                                    points="0,90 200,240 400,90 400,60 0,60   "
                                                  />
                                                </svg>
                                          </a>
                                        </div>
                                      </footer>
                                          .grid-columns {
                                          width: 100%;
                                          margin: 1rem auto;
                                          display: grid;
                                          grid-template-columns: repeat(auto-fit, 1fr);
                                          gap: 0.5em;
                                      }
                                      
                                      footer {
                                        display: grid;
                                        grid-template-columns: repeat(4, min-content);
                                        justify-content: center;
                                        gap: 1em;
                                        justify-items: center;
                                        align-items: center;
                                        margin-top: 50px;
                                        padding: 10px 0;
                                        width: 100%;
                                        bottom: 0;
                                      }
                                      
                                      footer a {
                                        cursor: pointer;
                                        width: 70px;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      @media (max-width: 682px) {
                                        footer {
                                          grid-template-columns: repeat(2, auto);
                                        }
                                        
                                        footer a {
                                          width: 50px;
                                          height: 50px;
                                        }
                                        footer .so {
                                          position: relative;
                                          left: -2em;
                                          top: -.2em;
                                          transform: scale(0.7);
                                        }
                                        footer .so:hover {
                                          transform: scale(0.65);
                                        }
                                      }
                                      
                                      .linked__in {
                                        justify-self: left; 
                                      } 
                                      
                                      
                                      footer a:hover {
                                        fill: var(--orange);
                                        transform: scale(0.9);
                                      }
                                      
                                      footer img {
                                        transform: scale(0.9);
                                        border-radius: 1em;
                                        cursor: pointer;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      footer img:hover {
                                        border: 3px solid var(--orange);
                                        transform: scale(0.8);
                                      }
                                      <footer>
                                              <a
                                                class="linked__in"
                                                href="#"
                                              >
                                                <svg viewBox="0 0 24 24">
                                                  <path
                                                    d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
                                                  />
                                                </svg>
                                              </a>
                                      
                                              <a href="#" class="gh">
                                                <svg viewBox="0 0 128 128">
                                                  <path
                                                    d="M64 1.512c-23.493 0-42.545 19.047-42.545 42.545 0 18.797 12.19 34.745 29.095 40.37 2.126.394 2.907-.923 2.907-2.047 0-1.014-.04-4.366-.058-7.92-11.837 2.573-14.334-5.02-14.334-5.02-1.935-4.918-4.724-6.226-4.724-6.226-3.86-2.64.29-2.586.29-2.586 4.273.3 6.523 4.385 6.523 4.385 3.794 6.504 9.953 4.623 12.38 3.536.383-2.75 1.485-4.628 2.702-5.69-9.45-1.075-19.384-4.724-19.384-21.026 0-4.645 1.662-8.44 4.384-11.42-.442-1.072-1.898-5.4.412-11.26 0 0 3.572-1.142 11.7 4.363 3.395-.943 7.035-1.416 10.65-1.432 3.616.017 7.258.49 10.658 1.432 8.12-5.504 11.688-4.362 11.688-4.362 2.316 5.86.86 10.187.418 11.26 2.728 2.978 4.378 6.774 4.378 11.42 0 16.34-9.953 19.938-19.427 20.99 1.526 1.32 2.886 3.91 2.886 7.88 0 5.692-.048 10.273-.048 11.674 0 1.13.766 2.458 2.922 2.04 16.896-5.632 29.07-21.574 29.07-40.365C106.545 20.56 87.497 1.512 64 1.512z"
                                                    clip-rule="evenodd"
                                                  />
                                                  <path
                                                    d="M37.57 62.596c-.095.212-.428.275-.73.13-.31-.14-.482-.427-.382-.64.09-.216.424-.277.733-.132.31.14.486.43.38.642zm-.524-.388M39.293 64.52c-.203.187-.6.1-.87-.198-.278-.297-.33-.694-.124-.884.208-.188.593-.1.87.197.28.3.335.693.123.884zm-.406-.437M40.97 66.968c-.26.182-.687.012-.95-.367-.262-.377-.262-.83.005-1.013.264-.182.684-.018.95.357.262.385.262.84-.005 1.024zm0 0M43.268 69.336c-.233.257-.73.188-1.093-.163-.372-.343-.475-.83-.242-1.087.237-.257.736-.185 1.102.163.37.342.482.83.233 1.086zm0 0M46.44 70.71c-.104.334-.582.485-1.064.344-.482-.146-.796-.536-.7-.872.1-.336.582-.493 1.067-.342.48.144.795.53.696.87zm0 0M49.92 70.965c.013.35-.396.642-.902.648-.508.012-.92-.272-.926-.618 0-.354.4-.642.908-.65.506-.01.92.272.92.62zm0 0M53.16 70.414c.06.342-.29.694-.793.787-.494.092-.95-.12-1.014-.46-.06-.35.297-.7.79-.792.503-.088.953.118 1.017.466zm0 0"
                                                  />
                                                  <path
                                                    fill="#100E0F"
                                                    d="M24.855 108.302h-10.7a.5.5 0 0 0-.5.5v5.232a.5.5 0 0 0 .5.5h4.173v6.5s-.937.32-3.53.32c-3.056 0-7.327-1.116-7.327-10.508 0-9.393 4.448-10.63 8.624-10.63 3.614 0 5.17.636 6.162.943.31.094.6-.216.6-.492l1.193-5.055a.468.468 0 0 0-.192-.39c-.403-.288-2.857-1.66-9.058-1.66-7.144 0-14.472 3.038-14.472 17.65 0 14.61 8.39 16.787 15.46 16.787 5.854 0 9.405-2.502 9.405-2.502.146-.08.162-.285.162-.38v-16.316a.5.5 0 0 0-.5-.5zM79.506 94.81H73.48a.5.5 0 0 0-.498.503l.002 11.644h-9.392V95.313a.5.5 0 0 0-.497-.503H57.07a.5.5 0 0 0-.498.503v31.53c0 .277.224.503.498.503h6.025a.5.5 0 0 0 .497-.504v-13.486h9.392l-.016 13.486c0 .278.224.504.5.504h6.038a.5.5 0 0 0 .497-.504v-31.53c0-.278-.22-.502-.497-.502zM32.34 95.527c-2.144 0-3.884 1.753-3.884 3.923 0 2.167 1.74 3.925 3.884 3.925 2.146 0 3.885-1.758 3.885-3.925 0-2.17-1.74-3.923-3.885-3.923zM35.296 105.135H29.29c-.276 0-.522.284-.522.56v20.852c0 .613.382.795.876.795h5.41c.595 0 .74-.292.74-.805v-6.346-14.553a.5.5 0 0 0-.498-.502zM102.902 105.182h-5.98a.5.5 0 0 0-.496.504v15.46s-1.52 1.11-3.675 1.11-2.727-.977-2.727-3.088v-13.482a.5.5 0 0 0-.497-.504h-6.068a.502.502 0 0 0-.498.504v14.502c0 6.27 3.495 7.804 8.302 7.804 3.944 0 7.124-2.18 7.124-2.18s.15 1.15.22 1.285c.07.136.247.273.44.273l3.86-.017a.502.502 0 0 0 .5-.504l-.003-21.166a.504.504 0 0 0-.5-.502zM119.244 104.474c-3.396 0-5.706 1.515-5.706 1.515V95.312a.5.5 0 0 0-.497-.503H107a.5.5 0 0 0-.5.503v31.53a.5.5 0 0 0 .5.503h4.192c.19 0 .332-.097.437-.268.103-.17.254-1.454.254-1.454s2.47 2.34 7.148 2.34c5.49 0 8.64-2.784 8.64-12.502s-5.03-10.988-8.428-10.988zm-2.36 17.764c-2.073-.063-3.48-1.004-3.48-1.004v-9.985s1.388-.85 3.09-1.004c2.153-.193 4.228.458 4.228 5.594 0 5.417-.935 6.486-3.837 6.398zM53.195 122.12c-.263 0-.937.107-1.63.107-2.22 0-2.973-1.032-2.973-2.368v-8.866h4.52a.5.5 0 0 0 .5-.504v-4.856a.5.5 0 0 0-.5-.502h-4.52l-.007-5.97c0-.227-.116-.34-.378-.34h-6.16c-.238 0-.367.106-.367.335v6.17s-3.087.745-3.295.805a.5.5 0 0 0-.36.48v3.877a.5.5 0 0 0 .497.503h3.158v9.328c0 6.93 4.86 7.61 8.14 7.61 1.497 0 3.29-.48 3.586-.59.18-.067.283-.252.283-.453l.004-4.265a.51.51 0 0 0-.5-.502z"
                                                  />
                                                </svg>
                                              </a>
                                      
                                      
                                               <img
                                                  src="https://stackoverflow.com/users/flair/11989189.png?theme=dark"
                                                  width="208"
                                                  height="58"
                                                  class="so"
                                                  alt="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers"
                                                  title="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers"
                                               />
                                              <a class="mail__me" href="#">
                                                <svg viewBox="0 0 400 400">
                                                  <polygon id="XMLID_869_" points="0,127.5 0,274.219 104.8,206.1  " />
                                                  <polygon
                                                    id="XMLID_870_"
                                                    points="400,274.219 400,127.5 295.2,206.1     "
                                                  />
                                                  <polygon
                                                    id="XMLID_871_"
                                                    points="200,277.5 130.357,225.268 0,310 0,340 400,340 400,310 269.643,225.268     "
                                                  />
                                                  <polygon
                                                    id="XMLID_872_"
                                                    points="0,90 200,240 400,90 400,60 0,60   "
                                                  />
                                                </svg>
                                              </a>
                                            </footer>
                                      footer {
                                        display: grid;
                                        grid-template-columns: repeat(4, min-content);
                                        justify-content: center;
                                        gap: 1em;
                                        justify-items: center;
                                        align-items: center;
                                        margin-top: 50px;
                                        padding: 10px 0;
                                        width: 100%;
                                        bottom: 0;
                                      }
                                      
                                      footer a {
                                        cursor: pointer;
                                        width: 70px;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      @media (max-width: 682px) {
                                        footer {
                                          grid-template-columns: repeat(2, auto);
                                        }
                                        
                                        footer a {
                                          width: 50px;
                                          height: 50px;
                                        }
                                        footer .so {
                                          position: relative;
                                          left: -2em;
                                          top: -.2em;
                                          transform: scale(0.7);
                                        }
                                        footer .so:hover {
                                          transform: scale(0.65);
                                        }
                                      }
                                      
                                      .linked__in {
                                        justify-self: left; 
                                      } 
                                      
                                      
                                      footer a:hover {
                                        fill: var(--orange);
                                        transform: scale(0.9);
                                      }
                                      
                                      footer img {
                                        transform: scale(0.9);
                                        border-radius: 1em;
                                        cursor: pointer;
                                        transition: all 0.4s ease-in-out;
                                      }
                                      
                                      footer img:hover {
                                        border: 3px solid var(--orange);
                                        transform: scale(0.8);
                                      }
                                      <footer>
                                              <a
                                                class="linked__in"
                                                href="#"
                                              >
                                                <svg viewBox="0 0 24 24">
                                                  <path
                                                    d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
                                                  />
                                                </svg>
                                              </a>
                                      
                                              <a href="#" class="gh">
                                                <svg viewBox="0 0 128 128">
                                                  <path
                                                    d="M64 1.512c-23.493 0-42.545 19.047-42.545 42.545 0 18.797 12.19 34.745 29.095 40.37 2.126.394 2.907-.923 2.907-2.047 0-1.014-.04-4.366-.058-7.92-11.837 2.573-14.334-5.02-14.334-5.02-1.935-4.918-4.724-6.226-4.724-6.226-3.86-2.64.29-2.586.29-2.586 4.273.3 6.523 4.385 6.523 4.385 3.794 6.504 9.953 4.623 12.38 3.536.383-2.75 1.485-4.628 2.702-5.69-9.45-1.075-19.384-4.724-19.384-21.026 0-4.645 1.662-8.44 4.384-11.42-.442-1.072-1.898-5.4.412-11.26 0 0 3.572-1.142 11.7 4.363 3.395-.943 7.035-1.416 10.65-1.432 3.616.017 7.258.49 10.658 1.432 8.12-5.504 11.688-4.362 11.688-4.362 2.316 5.86.86 10.187.418 11.26 2.728 2.978 4.378 6.774 4.378 11.42 0 16.34-9.953 19.938-19.427 20.99 1.526 1.32 2.886 3.91 2.886 7.88 0 5.692-.048 10.273-.048 11.674 0 1.13.766 2.458 2.922 2.04 16.896-5.632 29.07-21.574 29.07-40.365C106.545 20.56 87.497 1.512 64 1.512z"
                                                    clip-rule="evenodd"
                                                  />
                                                  <path
                                                    d="M37.57 62.596c-.095.212-.428.275-.73.13-.31-.14-.482-.427-.382-.64.09-.216.424-.277.733-.132.31.14.486.43.38.642zm-.524-.388M39.293 64.52c-.203.187-.6.1-.87-.198-.278-.297-.33-.694-.124-.884.208-.188.593-.1.87.197.28.3.335.693.123.884zm-.406-.437M40.97 66.968c-.26.182-.687.012-.95-.367-.262-.377-.262-.83.005-1.013.264-.182.684-.018.95.357.262.385.262.84-.005 1.024zm0 0M43.268 69.336c-.233.257-.73.188-1.093-.163-.372-.343-.475-.83-.242-1.087.237-.257.736-.185 1.102.163.37.342.482.83.233 1.086zm0 0M46.44 70.71c-.104.334-.582.485-1.064.344-.482-.146-.796-.536-.7-.872.1-.336.582-.493 1.067-.342.48.144.795.53.696.87zm0 0M49.92 70.965c.013.35-.396.642-.902.648-.508.012-.92-.272-.926-.618 0-.354.4-.642.908-.65.506-.01.92.272.92.62zm0 0M53.16 70.414c.06.342-.29.694-.793.787-.494.092-.95-.12-1.014-.46-.06-.35.297-.7.79-.792.503-.088.953.118 1.017.466zm0 0"
                                                  />
                                                  <path
                                                    fill="#100E0F"
                                                    d="M24.855 108.302h-10.7a.5.5 0 0 0-.5.5v5.232a.5.5 0 0 0 .5.5h4.173v6.5s-.937.32-3.53.32c-3.056 0-7.327-1.116-7.327-10.508 0-9.393 4.448-10.63 8.624-10.63 3.614 0 5.17.636 6.162.943.31.094.6-.216.6-.492l1.193-5.055a.468.468 0 0 0-.192-.39c-.403-.288-2.857-1.66-9.058-1.66-7.144 0-14.472 3.038-14.472 17.65 0 14.61 8.39 16.787 15.46 16.787 5.854 0 9.405-2.502 9.405-2.502.146-.08.162-.285.162-.38v-16.316a.5.5 0 0 0-.5-.5zM79.506 94.81H73.48a.5.5 0 0 0-.498.503l.002 11.644h-9.392V95.313a.5.5 0 0 0-.497-.503H57.07a.5.5 0 0 0-.498.503v31.53c0 .277.224.503.498.503h6.025a.5.5 0 0 0 .497-.504v-13.486h9.392l-.016 13.486c0 .278.224.504.5.504h6.038a.5.5 0 0 0 .497-.504v-31.53c0-.278-.22-.502-.497-.502zM32.34 95.527c-2.144 0-3.884 1.753-3.884 3.923 0 2.167 1.74 3.925 3.884 3.925 2.146 0 3.885-1.758 3.885-3.925 0-2.17-1.74-3.923-3.885-3.923zM35.296 105.135H29.29c-.276 0-.522.284-.522.56v20.852c0 .613.382.795.876.795h5.41c.595 0 .74-.292.74-.805v-6.346-14.553a.5.5 0 0 0-.498-.502zM102.902 105.182h-5.98a.5.5 0 0 0-.496.504v15.46s-1.52 1.11-3.675 1.11-2.727-.977-2.727-3.088v-13.482a.5.5 0 0 0-.497-.504h-6.068a.502.502 0 0 0-.498.504v14.502c0 6.27 3.495 7.804 8.302 7.804 3.944 0 7.124-2.18 7.124-2.18s.15 1.15.22 1.285c.07.136.247.273.44.273l3.86-.017a.502.502 0 0 0 .5-.504l-.003-21.166a.504.504 0 0 0-.5-.502zM119.244 104.474c-3.396 0-5.706 1.515-5.706 1.515V95.312a.5.5 0 0 0-.497-.503H107a.5.5 0 0 0-.5.503v31.53a.5.5 0 0 0 .5.503h4.192c.19 0 .332-.097.437-.268.103-.17.254-1.454.254-1.454s2.47 2.34 7.148 2.34c5.49 0 8.64-2.784 8.64-12.502s-5.03-10.988-8.428-10.988zm-2.36 17.764c-2.073-.063-3.48-1.004-3.48-1.004v-9.985s1.388-.85 3.09-1.004c2.153-.193 4.228.458 4.228 5.594 0 5.417-.935 6.486-3.837 6.398zM53.195 122.12c-.263 0-.937.107-1.63.107-2.22 0-2.973-1.032-2.973-2.368v-8.866h4.52a.5.5 0 0 0 .5-.504v-4.856a.5.5 0 0 0-.5-.502h-4.52l-.007-5.97c0-.227-.116-.34-.378-.34h-6.16c-.238 0-.367.106-.367.335v6.17s-3.087.745-3.295.805a.5.5 0 0 0-.36.48v3.877a.5.5 0 0 0 .497.503h3.158v9.328c0 6.93 4.86 7.61 8.14 7.61 1.497 0 3.29-.48 3.586-.59.18-.067.283-.252.283-.453l.004-4.265a.51.51 0 0 0-.5-.502z"
                                                  />
                                                </svg>
                                              </a>
                                      
                                      
                                               <img
                                                  src="https://stackoverflow.com/users/flair/11989189.png?theme=dark"
                                                  width="208"
                                                  height="58"
                                                  class="so"
                                                  alt="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers"
                                                  title="profile for Nikola Pavicevic at Stack Overflow, Q&amp;A for professional and enthusiast programmers"
                                               />
                                              <a class="mail__me" href="#">
                                                <svg viewBox="0 0 400 400">
                                                  <polygon id="XMLID_869_" points="0,127.5 0,274.219 104.8,206.1  " />
                                                  <polygon
                                                    id="XMLID_870_"
                                                    points="400,274.219 400,127.5 295.2,206.1     "
                                                  />
                                                  <polygon
                                                    id="XMLID_871_"
                                                    points="200,277.5 130.357,225.268 0,310 0,340 400,340 400,310 269.643,225.268     "
                                                  />
                                                  <polygon
                                                    id="XMLID_872_"
                                                    points="0,90 200,240 400,90 400,60 0,60   "
                                                  />
                                                </svg>
                                              </a>
                                            </footer>

                                      Remove the last value from the first key

                                      copy iconCopydownload iconDownload
                                      next(iter(player_data.values())).pop()
                                      

                                      Plot stacked (100%) bar chart for multiple categories on multiple dates in Python

                                      copy iconCopydownload iconDownload
                                      Flair            Discussion  Due Diligence  Hedge Fund Tears      News
                                      Submission_Date                                                       
                                      01.01.2021              NaN            NaN               1.0       NaN
                                      03.12.2020         0.666667            NaN               NaN  0.333333
                                      06.12.2020              NaN            1.0               NaN       NaN
                                      07.12.2020         1.000000            NaN               NaN       NaN
                                      31.12.2020         1.000000            NaN               NaN       NaN
                                      
                                      df2.index = pd.to_datetime(df2.index, format='%d.%m.%Y')
                                      df2 = df2.reindex(pd.date_range(df2.index.min(), df2.index.max()))
                                      df2.index = df2.index.strftime('%Y-%m-%d') 
                                      
                                      Flair       Discussion  Due Diligence  Hedge Fund Tears      News
                                      2020-12-03    0.666667            NaN               NaN  0.333333
                                      2020-12-04         NaN            NaN               NaN       NaN
                                      2020-12-05         NaN            NaN               NaN       NaN
                                      2020-12-06         NaN            1.0               NaN       NaN
                                      2020-12-07    1.000000            NaN               NaN       NaN
                                      ...
                                      2020-12-30         NaN            NaN               NaN       NaN
                                      2020-12-31    1.000000            NaN               NaN       NaN
                                      2021-01-01         NaN            NaN               1.0       NaN
                                      
                                      Flair            Discussion  Due Diligence  Hedge Fund Tears      News
                                      Submission_Date                                                       
                                      01.01.2021              NaN            NaN               1.0       NaN
                                      03.12.2020         0.666667            NaN               NaN  0.333333
                                      06.12.2020              NaN            1.0               NaN       NaN
                                      07.12.2020         1.000000            NaN               NaN       NaN
                                      31.12.2020         1.000000            NaN               NaN       NaN
                                      
                                      df2.index = pd.to_datetime(df2.index, format='%d.%m.%Y')
                                      df2 = df2.reindex(pd.date_range(df2.index.min(), df2.index.max()))
                                      df2.index = df2.index.strftime('%Y-%m-%d') 
                                      
                                      Flair       Discussion  Due Diligence  Hedge Fund Tears      News
                                      2020-12-03    0.666667            NaN               NaN  0.333333
                                      2020-12-04         NaN            NaN               NaN       NaN
                                      2020-12-05         NaN            NaN               NaN       NaN
                                      2020-12-06         NaN            1.0               NaN       NaN
                                      2020-12-07    1.000000            NaN               NaN       NaN
                                      ...
                                      2020-12-30         NaN            NaN               NaN       NaN
                                      2020-12-31    1.000000            NaN               NaN       NaN
                                      2021-01-01         NaN            NaN               1.0       NaN
                                      
                                      Flair            Discussion  Due Diligence  Hedge Fund Tears      News
                                      Submission_Date                                                       
                                      01.01.2021              NaN            NaN               1.0       NaN
                                      03.12.2020         0.666667            NaN               NaN  0.333333
                                      06.12.2020              NaN            1.0               NaN       NaN
                                      07.12.2020         1.000000            NaN               NaN       NaN
                                      31.12.2020         1.000000            NaN               NaN       NaN
                                      
                                      df2.index = pd.to_datetime(df2.index, format='%d.%m.%Y')
                                      df2 = df2.reindex(pd.date_range(df2.index.min(), df2.index.max()))
                                      df2.index = df2.index.strftime('%Y-%m-%d') 
                                      
                                      Flair       Discussion  Due Diligence  Hedge Fund Tears      News
                                      2020-12-03    0.666667            NaN               NaN  0.333333
                                      2020-12-04         NaN            NaN               NaN       NaN
                                      2020-12-05         NaN            NaN               NaN       NaN
                                      2020-12-06         NaN            1.0               NaN       NaN
                                      2020-12-07    1.000000            NaN               NaN       NaN
                                      ...
                                      2020-12-30         NaN            NaN               NaN       NaN
                                      2020-12-31    1.000000            NaN               NaN       NaN
                                      2021-01-01         NaN            NaN               1.0       NaN
                                      

                                      See all related Code Snippets

                                      Community Discussions

                                      Trending Discussions on flair
                                      • PRAW Posting new submission with a flair?
                                      • what does &quot;in-memory&quot; means ? In the context of hadoop
                                      • Why is union() a narrow transformation and intersection() is a wide transformation in spark?
                                      • How to predict actual future values after testing the trained LSTM model?
                                      • Chi squared test for significance
                                      • bsddb.btopen alternative on Google Colab?
                                      • Convert dataframe for category percentages in python
                                      • How to apply Entity Framework migration scripts to restore a database in an existing ASP.NET Core Web application
                                      • Why aren't these regular expressions not working with exclamation point?
                                      • How to generate _id pages for movies using NUXT generated from API fetched from the movie DB
                                      Trending Discussions on flair

                                      QUESTION

                                      PRAW Posting new submission with a flair?

                                      Asked 2022-Mar-21 at 13:29

                                      Trying to post to a subreddit that requires flairs

                                      reddit.subreddit('test').submit(title,url=link,flair_id='')
                                      

                                      i didn't know how to find the flair_id of a subreddit ?

                                      also when I try to share an image with praw using

                                      Trying to post to a subreddit that requires flairs

                                      reddit.subreddit('').submit_image(title,image_path=image,flair_id='')
                                      

                                      how should i write the image path ?

                                      ANSWER

                                      Answered 2022-Mar-21 at 13:29

                                      You can find the available flair ids with

                                      reddit.subreddit("test").flair.templates
                                      

                                      The image path is a path relative to the script

                                      ex.

                                      script/
                                           - main.py
                                           - image.png
                                      
                                      reddit.subreddit('').submit_image(title, image_path="image.png")
                                      

                                      Source https://stackoverflow.com/questions/71549840

                                      Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                                      Vulnerabilities

                                      No vulnerabilities reported

                                      Install flair

                                      The project is based on PyTorch 1.5+ and Python 3.6+, because method signatures and type hints are beautiful. If you do not have Python 3.6, install it first. Here is how for Ubuntu 16.04. Then, in your favorite virtual environment, simply do:.

                                      Support

                                      Please email your questions or comments to Alan Akbik.

                                      DOWNLOAD this Library from

                                      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
                                      over 430 million Knowledge Items
                                      Find more libraries
                                      Reuse Solution Kits and Libraries Curated by Popular Use Cases
                                      Explore Kits

                                      Save this library and start creating your kit

                                      Share this Page

                                      share link
                                      Reuse Pre-built Kits with flair
                                      Consider Popular Natural Language Processing Libraries
                                      Compare Natural Language Processing Libraries with Highest Support
                                      Compare Natural Language Processing Libraries with Highest Quality
                                      Compare Natural Language Processing Libraries with Highest Security
                                      Compare Natural Language Processing Libraries with Permissive License
                                      Compare Natural Language Processing Libraries with Highest Reuse
                                      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
                                      over 430 million Knowledge Items
                                      Find more libraries
                                      Reuse Solution Kits and Libraries Curated by Popular Use Cases
                                      Explore Kits

                                      Save this library and start creating your kit

                                      • © 2022 Open Weaver Inc.