Code Monkey home page Code Monkey logo

vue-currency-filter's Introduction

🍒 Vue Currency Filter

Vue Currency Logo

Lightweight vue currency filter based on accounting.js

Demo

https://mazipan.github.io/vue-currency-filter/

Download

# NPM
npm install vue-currency-filter

# Yarn
yarn add vue-currency-filter

Sample Usage

Step by step to using vue-currency-filter:

Import in main.js

import VueCurrencyFilter from 'vue-currency-filter'

Use Plugins

Vue.use(VueCurrencyFilter)

Add Global Configuration

Vue.use(VueCurrencyFilter,
{
  symbol : '$',
  thousandsSeparator: '.',
  fractionCount: 2,
  fractionSeparator: ',',
  symbolPosition: 'front',
  symbolSpacing: true,
  avoidEmptyDecimals: undefined,
})

Add Multiple Instance

Vue.use(VueCurrencyFilter, [
 { // default name 'currency'
   symbol: '$',
   thousandsSeparator: ',',
   fractionCount: 2,
   fractionSeparator: '.',
   symbolPosition: 'front',
   symbolSpacing: true,
   avoidEmptyDecimals: '',
 },
 { // default name 'currency_2'
   name: 'currency_2',
   symbol: 'usd',
   thousandsSeparator: ' ',
   fractionCount: 2,
   fractionSeparator: '.',
   symbolPosition: 'front',
   symbolSpacing: false,
   avoidEmptyDecimals: '--',
 }
])

Use in View

<span>{{ 20000 | currency}}</span>

Usage in Nuxt.js

Add vue-currency-filter/nuxt to modules section of nuxt.config.js

{
  modules: [
    'vue-currency-filter/nuxt',

    // Or if you have custom options...
    ['vue-currency-filter/nuxt', {
      symbol: '$',
      thousandsSeparator: ',',
      fractionCount: 2,
      fractionSeparator: '.',
      symbolPosition: 'front',
      symbolSpacing: true,
      avoidEmptyDecimals: undefined,
    }],

    // for multiple instance
    ['vue-currency-filter/nuxt', [
      { // default name 'currency'
        symbol: '$',
        thousandsSeparator: ',',
        fractionCount: 2,
        fractionSeparator: '.',
        symbolPosition: 'front',
        symbolSpacing: true,
        avoidEmptyDecimals: '##',
      },
      { // default name 'currency_2'
        name: 'currency_2',
        symbol: 'usd',
        thousandsSeparator: ' ',
        fractionCount: 2,
        fractionSeparator: '.',
        symbolPosition: 'front',
        symbolSpacing: false,
        avoidEmptyDecimals: '',
      }
    ]],
  ]
}

or using external options

{
  modules: [
    'vue-currency-filter/nuxt'
  ]
  currencyFilter: [
    { // default name 'currency'
      symbol: '$',
      thousandsSeparator: ',',
      fractionCount: 2,
      fractionSeparator: '.',
      symbolPosition: 'front',
      symbolSpacing: true,
      avoidEmptyDecimals: '',
    },
    { // default name 'currency_2'
      name: 'currency_2',
      symbol: 'usd',
      thousandsSeparator: ' ',
      fractionCount: 2,
      fractionSeparator: '.',
      symbolPosition: 'front',
      symbolSpacing: false,
      avoidEmptyDecimals: '##',
    }
  ]
  // or for one filter
  currencyFilter: { // default name 'currency'
    symbol: '$',
    thousandsSeparator: ',',
    fractionCount: 2,
    fractionSeparator: '.',
    symbolPosition: 'front',
    symbolSpacing: true,
    avoidEmptyDecimals: undefined,
  }
}

Usage in Nuxt-typescript

you must add declaration for vue and nuxt context if you want autocomplete in methods create file vue-currency-filters.ts in directory with your types

import { CurrencyFilterMethodInstance } from "vue-currency-filter/src/types";

declare module 'vue/types/vue' {
  interface Vue {
    $currency: CurrencyFilterMethodInstance,
    $currency_2: CurrencyFilterMethodInstance
  }
}

declare module '@nuxt/types' {
  interface NuxtAppOptions {
    $currency: CurrencyFilterMethodInstance,
    $currency_2: CurrencyFilterMethodInstance
  }
}

Usage without NPM

Add script dependencies

<!-- Vue Dependency -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://unpkg.com/vue-currency-filter"></script>

Use filters in global

if (VueCurrencyFilter) {
  Vue.use(VueCurrencyFilter, {
    symbol: "£",
    thousandsSeparator: ",",
    fractionCount: 0,
    fractionSeparator: ".",
    symbolPosition: "front",
    symbolSpacing: false,
    avoidEmptyDecimals: '',
  })
}

var app = new Vue({
  el: '#app',
  data: {
    curr: 1000
  }
});

See https://codepen.io/mazipan/pen/YdmNMy for code sample.

Add Configuration In Specific Place

<span>
{{ textInput | currency(configSymbol, configSeparator, configFractionCount,
configFractionSeparator, configSymbolPosition, configSymbolSpacing)}}
</span>

Now configurations is also available as Object, thanks to sunhengzhe in PR #25:

<span>
{{ textInput | currency({
  symbol: '',
  thousandsSeparator: '',
  fractionCount: '',
  fractionSeparator: '',
  symbolPosition: '',
  symbolSpacing: '',
  avoidEmptyDecimals: undefined,
})}}
</span>

Available Options

{
  name: 'string (default: currency)', // using for multiple instance filters
  symbol: 'string (default : empty string)',
  thousandsSeparator: 'string (default : .)',
  fractionCount: 'number (default : 0)',
  fractionSeparator: 'string (default: ",")',
  symbolPosition: 'string (default: front)',
  symbolSpacing: 'boolean (default: true)',
  avoidEmptyDecimals: 'string (default: undefined)',
}

How to test in Unit Test

Using @vue/test-utils we can create test for any Vue Plugins, like:

/* eslint-env jest */
import { shallowMount, createLocalVue } from "@vue/test-utils";
import VueCurrencyFilter from "vue-currency-filter";

import Component from "../pages/myComponent.vue";

describe("test myComponent", () => {
  it("vue-currency-filter should working correctly", () => {
    const localVue = createLocalVue();
    
    localVue.use(VueCurrencyFilter, {
      symbol: "$",
      thousandsSeparator: ",",
      fractionCount: 2,
      fractionSeparator: ".",
      symbolPosition: "front",
      symbolSpacing: true,
      avoidEmptyDecimals: undefined,
    });

    let wrapper = shallowMount(Component, {
      localVue
    });

    const result = wrapper.find(".curr");
    expect(result.text()).toEqual("$ 1,000.00");
    
    localVue.use(VueCurrencyFilter, {
      symbol: "$",
      thousandsSeparator: ",",
      fractionCount: 2,
      fractionSeparator: ".",
      symbolPosition: "front",
      symbolSpacing: true,
      avoidEmptyDecimals: '',
    });

    wrapper = shallowMount(Component, {
      localVue
    });

    const result = wrapper.find(".curr");
    expect(result.text()).toEqual("$ 1,000");
    
    localVue.use(VueCurrencyFilter, {
      symbol: "$",
      thousandsSeparator: ",",
      fractionCount: 2,
      fractionSeparator: ".",
      symbolPosition: "front",
      symbolSpacing: true,
      avoidEmptyDecimals: '##',
    });

    wrapper = shallowMount(Component, {
      localVue
    });

    const result = wrapper.find(".curr");
    expect(result.text()).toEqual("$ 1,000.##");
  });
});

See sample test here: https://codesandbox.io/s/6xk1mv694n

Contributing

If you'd like to contribute, head to the contributing guidelines. Inside you'll find directions for opening issues, coding standards, and notes on development.

Credits

  • Vue for amazing framework
  • Jetbrain for amazing support with free license for WebStorm IDE
  • @iqbalhood as logo creator (see #19)

Support me

Hope this will be useful for you all

Copyright © 2017 Built with ❤️ by Irfan Maulana

Contributors

Thanks goes to these wonderful people (emoji key):


Irfan Maulana

💻

iqbalhood

🎨

孙恒哲

💻

Ricardo Gobbo de Souza

💻

Yashodhan Singh Rathore

💻

Gijs Rogé

💻

Ivan Sysa

💻

Nicola Cordioli

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

vue-currency-filter's People

Contributors

allcontributors[bot] avatar dependabot-preview[bot] avatar dependabot[bot] avatar dsfx3d avatar gijsroge avatar greenkeeper[bot] avatar guidorr avatar imgbot[bot] avatar irfan-maulana-tkp avatar kevin0x90 avatar mazipan avatar moustachedelait avatar niccord avatar ricardogobbosouza avatar snyk-bot avatar sysaivan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

vue-currency-filter's Issues

An in-range update of webpack is breaking the build 🚨

The devDependency webpack was updated from 4.36.0 to 4.36.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

webpack is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v4.36.1

Bugfixes

  • fix regression in 4.36.0 when using happypack
Commits

The new version differs by 3 commits.

  • 92caa5d 4.36.1
  • 4cac066 Merge pull request #9425 from webpack/bugfix/no-resolve-options
  • 1f966eb fix #9424

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Not usable with SSR since v2.2

It seems like the switch to webpack 4 made it so that this package doesn't work with Server Side Rendering any more, because in the dist file a window object is inserted, which doesn't exist in node applications.

How to use it without Babel

Is there a way to use your script without Node/Babel/Webpack and all these things?
I would like to use it but I just use plain ES5, is there a way to integrate your script with vanilla ES5 methods?

can i use plugin in script

I know that it can be used in component tag, such as

<component>
  <div>{{ a | currency }}</div>
</component>
<script>
export default {
  data() {
    return {
      a: 1000
    }
  }
}
</script>

if I want use it in script, what can I do, for example, it is a wrong example to show what I mean

<component>
  <div>{{ b }}</div>
</component>
<script>
export default {
  data() {
    return {
      b: 1000
    }
  },
  mounted() {
    this.b = this.currency(this.b) // how to change it to a currency value, i write for test
  }
}
</script>

Integer formatting

It seems like missing integer formatting.

I am not able to do a very simple conversion.

200 -> $2.00

Ability to define multiple filters with different options

I have some places in my app where fractionCount is 0, and some where it is 2. However, you can only define settings globally, which basically means I need to do something like this in half of my app:

{{ money | currency({ fractionCount: 2 }) }}

It would be really nice if the app supported multiple configurations with different filter names. In the meanwhile, I've done this:

Vue.filter('currency_no_fraction', function (value) {
  return Vue.options.filters.currency(value, {fractionCount: 0})
})

Can't use multiple instances in global mode

in main.js

import VueCurrencyFilter from 'vue-currency-filter'

Vue.use(VueCurrencyFilter, 
  {
    symbol: 'R$',
    thousandsSeparator: '.',
    fractionCount: 2,
    fractionSeparator: ',',
    symbolPosition: 'front',
    symbolSpacing: true
  },
  {
    name: 'valor',
    symbol: '',
    thousandsSeparator: '',
    fractionCount: 2,
    fractionSeparator: ',',
    symbolPosition: 'front',
    symbolSpacing: false
  }
)

in views

              <v-row wrap class="mx-0">
                <v-text-field
                  class="mx-2"
                  :value="cli_financeiro.mensalidade | currency"
                  @input="value => (cli_financeiro.mensalidade = value)"
                  label="Mensalidade"
                ></v-text-field>
                <v-text-field
                  class="mx-2"
                  :value="cli_financeiro.desconto | valor"
                  @input="value => (cli_financeiro.desconto = value)"
                  label="Desconto"
                ></v-text-field>
              </v-row>

give me an error

vue.runtime.esm.js?2b0e:619 [Vue warn]: Failed to resolve filter: valor

and if I put the [ ] in

Vue.use(VueCurrencyFilter, [
  {
    symbol: 'R$',
    thousandsSeparator: '.',
    fractionCount: 2,
    fractionSeparator: ',',
    symbolPosition: 'front',
    symbolSpacing: true
  },
  {
    name: 'valor',
    symbol: 'R$',
    thousandsSeparator: '.',
    fractionCount: 2,
    fractionSeparator: ',',
    symbolPosition: 'front',
    symbolSpacing: true
  }
])

I give no errors at all but both filters stop works

Put new logo in readme and demo

Related with #19
We will place this new logo in readme and demo page.
Also will revamp the demo page to be more fancy and have same theme color with the logo.

How to use non-breaking spaces ?

I would like to use non-breaking spaces (&nbsp; in HTML) to format a price (for example 1 337,00 €).

I can inject it using thousandsSeparator.

However, it is not possible for the space before the symbol.
Could you add a parameter called symbolSeparator to make it possible ?

Thousand separator to &nbsp;

When someone displays a currency number, usually, the space should be a &nbsp; so that the number is not breaked in the middle and unreadable. How would you implement such a feature, through a special option value or just convert the spaces passed in the option to &nbsp;

Show decimals only when necessary

Hi,

would it be possible to show decimals only when needed? For example I want to display 1234,45$ but not 1234,00$. This one should be 1234$. I'd like to strip insignificant zeros.

Thanks.

Hosted our own accounting.js

Since accounting.js seems not well maintain by it's creator.
Can we hosted our own formatMoney function ?
Maybe we can learn from accounting.js do it.

Values are not well rounded

Hi,

Rounding values with 3 decimals is not working properly.
When I have a value e.g. 9.075. It round's to 9.07 and not 7.08.

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on Greenkeeper branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didn’t receive a CI status on the greenkeeper/initial branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.

currency filter not applying decimal from server

Recently upgraded from version 3.2.3 to 3.4.3 and the currency filter is not applying the thousands symbol anymore. I verified on the frontend works great but for some reason will not apply the thousands when ran from node.

failing test

test('renders renders with proper VueCurrencyFilter formatting', async t => {
  const template = '<div>${{pay | currency({ fractionCount: 0 })}}</div>'
  const vars = {
    pay: '5000'
  }

  const html = await renderTemplate(template, vars)

  t.is('<div>$5,000</div>', html)
})

render method

const Vue = require('vue')
const VueCurrencyFilter = require('vue-currency-filter')
const { createRenderer } = require('vue-server-renderer')
const moment = require('moment')

const renderer = createRenderer()
const { specialCharacters } = require('./utils')

Vue.use(VueCurrencyFilter, {
  symbol: '$',
  thousandsSeparator: ',',
  fractionCount: 2,
  fractionSeparator: '.',
  symbolPosition: 'front',
  symbolSpacing: false
})

module.exports = async function (template, data) {
  const sanitized_template = template.replace(specialCharacters, '')
  const app = new Vue({
    template: sanitized_template,
    data,
    filters: {
      date (val) {
        return moment(val).format('M/D/YYYY')
      }
    }
  })

  const html = await renderer.renderToString(app)

  return html.replace(' data-server-rendered="true"', '')
}

can initialize multiple configs

i need multiple configs, but currently we can use this plugin in one way

Vue.use(VueCurrencyFilter,
{
symbol : '$',
thousandsSeparator: ',',
fractionCount: 0,
fractionSeparator: '.',
symbolPosition: 'front',
symbolSpacing: false
})
Vue.use(VueCurrencyFilter,
{
name: 'abtestt', // like this
symbol : '$',
thousandsSeparator: ',',
fractionCount: 2,
fractionSeparator: '.',
symbolPosition: 'front',
symbolSpacing: false
})
{{ v1 | currency}} // 1st filter works
{{ v1 | abtestt}} // now 2nd one

Current release causes jest to break on "unexpected token"

The full error shows up as:

    Jest encountered an unexpected token

    This usually means that you are trying to import a file which Jest cannot pa
rse, e.g. it's not plain JavaScript.

    By default, if Jest sees a Babel config, it will use that to transform your
files, ignoring "node_modules".

    Here's what you can do:
      To have some of your "node_modules" files transformed, you can specify a c
ustom "transformIgnorePatterns" in your config.
      If you need a custom transformation specify a "transform" option in your c
onfig.
      If you simply want to mock your non-JS modules (e.g. binary assets) you ca
n stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/en/configuration.html

    Details:

    D:\ywc\src\node_modules\@babel\runtime\helpers\esm\typeof.js:3
    export default function _typeof(obj) {
    ^^^^^^

    SyntaxError: Unexpected token export

      at ScriptTransformer._transformAndBuildScript (node_modules/@vue/cli-plugin-unit-jest/node_modules/jest-runtime/build/script_transformer.js:403:17)
      at node_modules/vue-currency-filter/dist/VueCurrencyFilter.bundle.js:2:91
      at Object.<anonymous> (node_modules/vue-currency-filter/dist/VueCurrencyFilter.bundle.js:5:2)

Rolling back to 3.2.0 makes this error go away.

An in-range update of webpack-serve is breaking the build 🚨

The devDependency webpack-serve was updated from 3.1.1 to 3.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

webpack-serve is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 3 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

npm files pointing incorrectly

All files are pointing to the min file, this is not correct and it is breaking.
When should it be:

// main -> umd
// module -> cjs(commonjs)

"main": "dist/VueCurrencyFilter.js",
"module": "dist/VueCurrencyFilter.cjs.js"

5bc7eab

Adopt tsdx

Try to adopt tsdx as a development tools

Cannot set thousand separator to space

I'm having a small problem using your filter with French Canadian. French Canadian uses thousand separator of space, but your filter is setting it to the default because it thinks an empty space is a number.

Failed run in development

After upgrading webpack into v4, this repo failed to run script npm run dev which used for development environment.

Possibility to change global props after init

I am using VueI18n with three languages, and i cannot change the global props of the CurrencyFilter plugin, when i change a language.

I don't want to put all the config inline for every time i use it, but instead i want to do something like.
this.$currencyFilter= {} in my method for changing language.

Is this possible?

This is my code
main.js

import VueCurrencyFilter from 'vue-currency-filter'

Vue.use(VueCurrencyFilter,
    {
        symbol : '€',
        thousandsSeparator: '.',
        fractionCount: 2,
        fractionSeparator: ',',
        symbolPosition: 'front',
        symbolSpacing: true
    });

I would need to override symbol, thousandsSeparator and fractionSeparator

om sepertinya ada bug di symbolSpacing

Vue.use(VueCurrencyFilter,
{
symbol : '$',
thousandsSeparator: '.',
fractionCount: 0,
fractionSeparator: ',',
symbolPosition: 'front',
symbolSpacing: false
}
)

tapi di tampilan filternya masih belum jalan.

screen shot 2017-11-07 at 7 12 31 pm

How to style symbol differently?

Hi, I want to have a different font-size on the symbol and floating digits.
I am assuming to get this

<span>$</span><span>999</span><span>.88</span>
image

Is this possible?

Cannot set thousands separator to '' or ' ' (space)

Hello!
Can you explain me what this line of code is doing:
if(!thousandsSeparator || !isNaN(thousandsSeparator)) thousandsSeparator = '.'

I want to set thousands separator to space (or empty string), but this condition does not allow to do this

Proposal: include a helper to the filter outside the template

This is possible by using the filters but will be nice to have helper to use directly in the scripts:

<script>
methods: {
 format () {
    // its possible by doing this
    return this.$options.filters.currency(99999)
    // But will be nice to do this
    return this.$currency(99999)
}
</script>

BTW I can do it and made the PR, but do you like the idea?

Nuxt usage

I tried to use this as plugin in Nuxt.
I have created currency.js under plugins/ folder.

// plugins/currency.js

import VueCurrencyFilter from 'vue-currency-filter'
import Vue from 'vue'

Vue.use(VueCurrencyFilter)

and include the script in nuxt.config.js

// nuxt.config.js

module.exports = {
    plugins: [
        { src: '~/plugins/currency.js', ssr: false }
    ]
}

and inside my component at components/ProductCard.vue

// components/ProductCard.vue
<template>
    <h4>{{ price | currency }}</h4>
</template>
<script>
    import currency from '~/plugins/currency.js'

    export default {
        ...
    }
</script>

This resulted error as below

[Vue warn]: Failed to resolve filter: currency

(found in <ProductCard> at components/ProductCard.vue)

Any workaround how to use this on Nuxt?

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on Greenkeeper branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didn’t receive a CI status on the greenkeeper/initial branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.

Support pass parameters with object

Hi,
The filter is very useful for us, but we get a problem when we need add configuration in specific place.
We just want to change one or two configs but not affect others , for your example and source code, we need pass all parameters one by one, like {{ money | currency(undefined, undefined, 2)}}.
It's so ugly and verbose, so maybe we can just pass a config which will be merged to default config, like {{ money | currency({ fractionCount: 2 }}} I guess it will be more flexible

Non decimal suffix option

Currently in the module it shows 49,00 but it would be nice if there was an option so it could show 49,- since this is the way its shown in euro's

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.